@thinkingai/ae-cli 6.0.18-1 → 6.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +7 -6
  2. package/README.zh.md +8 -7
  3. package/dist/index.js +11 -6
  4. package/dist/{te-agent-KZRIEN4N.js → te-agent-CYZUC4US.js} +543 -19
  5. package/dist/{te-analysis-VAR4KUOK.js → te-analysis-HJ22TUAA.js} +318 -40
  6. package/dist/te-audience-MYDE5WEH.js +590 -0
  7. package/dist/te-dataops-ZTS7XMXM.js +1842 -0
  8. package/dist/{te-kb-B62KFP2A.js → te-kb-OWM3RQRH.js} +46 -21
  9. package/dist/{te-meta-EPZGQN56.js → te-meta-JVO4QJBH.js} +28 -11
  10. package/package.json +1 -1
  11. package/skills/ae-agent/SKILL.md +103 -4
  12. package/skills/ae-analysis/SKILL.md +66 -19
  13. package/skills/ae-analysis/references/build_attribution_analysis_qp.md +60 -0
  14. package/skills/ae-analysis/references/build_cluster_definition.md +60 -0
  15. package/skills/ae-analysis/references/build_distribution_analysis_qp.md +65 -0
  16. package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +52 -0
  17. package/skills/ae-analysis/references/build_interval_analysis_qp.md +58 -0
  18. package/skills/ae-analysis/references/build_path_analysis_qp.md +51 -0
  19. package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +61 -0
  20. package/skills/ae-analysis/references/build_tag_definition.md +63 -0
  21. package/skills/ae-analysis/references/cancel_query.md +2 -3
  22. package/skills/ae-analysis/references/copy_dashboard.md +33 -0
  23. package/skills/ae-analysis/references/create_id_cluster.md +40 -0
  24. package/skills/ae-analysis/references/create_id_tag.md +39 -0
  25. package/skills/ae-analysis/references/delete_alert.md +27 -0
  26. package/skills/ae-analysis/references/delete_cluster.md +27 -0
  27. package/skills/ae-analysis/references/delete_dashboard.md +30 -0
  28. package/skills/ae-analysis/references/delete_metric.md +27 -0
  29. package/skills/ae-analysis/references/delete_report.md +27 -0
  30. package/skills/ae-analysis/references/delete_tag.md +27 -0
  31. package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
  32. package/skills/ae-analysis/references/drilldown_users.md +3 -3
  33. package/skills/ae-analysis/references/freeze_dashboards.md +29 -0
  34. package/skills/ae-analysis/references/get_table_columns.md +11 -12
  35. package/skills/ae-analysis/references/list_cluster_members.md +4 -4
  36. package/skills/ae-analysis/references/list_clusters.md +3 -3
  37. package/skills/ae-analysis/references/list_dashboards.md +3 -3
  38. package/skills/ae-analysis/references/list_entities.md +1 -1
  39. package/skills/ae-analysis/references/list_events.md +3 -3
  40. package/skills/ae-analysis/references/list_metrics.md +2 -2
  41. package/skills/ae-analysis/references/list_properties.md +3 -3
  42. package/skills/ae-analysis/references/list_reports.md +3 -3
  43. package/skills/ae-analysis/references/list_spaces.md +27 -0
  44. package/skills/ae-analysis/references/list_tag_members.md +4 -4
  45. package/skills/ae-analysis/references/list_tags.md +2 -2
  46. package/skills/ae-analysis/references/move_dashboard.md +33 -0
  47. package/skills/ae-analysis/references/query_adhoc.md +2 -2
  48. package/skills/ae-analysis/references/query_bi_panel_data.md +2 -2
  49. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -4
  50. package/skills/ae-analysis/references/query_entity_details.md +4 -4
  51. package/skills/ae-analysis/references/query_event_details.md +3 -3
  52. package/skills/ae-analysis/references/query_report_data.md +37 -3
  53. package/skills/ae-analysis/references/update_id_cluster.md +36 -0
  54. package/skills/ae-analysis/references/update_id_tag.md +37 -0
  55. package/skills/ae-analysis/references/update_report.md +35 -0
  56. package/skills/ae-analysis-intent/SKILL.md +1 -1
  57. package/skills/ae-dataops/SKILL.md +54 -522
  58. package/skills/ae-dataops/references/dataops-flow-create.md +78 -75
  59. package/skills/ae-dataops/references/dataops-flow-monitor.md +58 -51
  60. package/skills/ae-dataops/references/dataops-integration.md +80 -41
  61. package/skills/ae-dataops/references/dataops-query.md +54 -53
  62. package/skills/ae-dataops/references/dataops-table.md +28 -59
  63. package/dist/te-audience-KMKYI2YJ.js +0 -400
  64. package/dist/te-dataops-GD3XBYCS.js +0 -1830
@@ -1,1830 +0,0 @@
1
- import {
2
- callMcpTool,
3
- parseMcpResult,
4
- registerMcpMappings,
5
- resolveMcpUrl
6
- } from "./chunk-DMMEPCST.js";
7
- import "./chunk-PN3OS34E.js";
8
- import "./chunk-NOO24N7W.js";
9
- import "./chunk-RSHMZ3LG.js";
10
- import "./chunk-6W4QOZAL.js";
11
-
12
- // src/commands/te-dataops/datatable/list-tables-by-page.ts
13
- var listTablesByPage = {
14
- service: "dataops_datatable",
15
- command: "+list_tables_by_page",
16
- description: "Paginated query of tables registered on dataops platform, supports search and dimension statistics. Returns: entityId, tableName, schemaName, repoCode, tableType (0=table/1=view), remark, plus dimension statistics grouped by repo/catalog/schema. Difference from ide_search_tables: This tool queries dataops registered metadata (including business descriptions), ide_search_tables queries data warehouse engine real-time metadata",
17
- flags: [
18
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
19
- { name: "search", type: "string", required: false, desc: "Search keyword (fuzzy match on table name/remark/description)" },
20
- { name: "pageNum", type: "number", required: false, desc: "Page number, default 1" },
21
- { name: "pageSize", type: "number", required: false, desc: "Page size, default 20, max 10000" }
22
- ],
23
- risk: "read",
24
- execute: async (ctx) => {
25
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
26
- const result = await callMcpTool(mcpUrl, "datatable_list_tables_by_page", {
27
- spaceCode: ctx.str("spaceCode"),
28
- search: ctx.str("search"),
29
- pageNum: ctx.num("pageNum"),
30
- pageSize: ctx.num("pageSize")
31
- });
32
- return parseMcpResult(result);
33
- }
34
- };
35
-
36
- // src/commands/te-dataops/datatable/struct-by-repo.ts
37
- var structByRepo = {
38
- service: "dataops_datatable",
39
- command: "+struct_by_repo",
40
- description: "Get table hierarchy structure by repository dimension (repo\u2192catalog\u2192schema\u2192tables). Returns: Flattened hierarchy list including repoCode, catalogName, schemaName, tables. Applicable for browsing full overview of space data assets",
41
- flags: [
42
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
43
- { name: "search", type: "string", required: false, desc: "Search keyword (optional, for filtering results)" }
44
- ],
45
- risk: "read",
46
- execute: async (ctx) => {
47
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
48
- const result = await callMcpTool(mcpUrl, "datatable_struct_by_repo", {
49
- spaceCode: ctx.str("spaceCode"),
50
- search: ctx.str("search")
51
- });
52
- return parseMcpResult(result);
53
- }
54
- };
55
-
56
- // src/commands/te-dataops/datatable/get-table-detail.ts
57
- var getTableDetail = {
58
- service: "dataops_datatable",
59
- command: "+get_table_detail",
60
- description: "Get details of data tables registered on dataops platform (including column definitions, DDL, data lineage). Input table name only, system automatically matches management mode and environment. Returns: columns (column name/type/comment), ddl (CREATE TABLE statement), lineage (upstream/downstream lineage). When env is not specified, TASK_ENV mode returns DEV and PRODUCT dual environment information by default. Supported management modes: TASK_ENV (space task table, default), IDE (IDE table), SYSTEM (system table), AUTHED_SPACE (authorized table, PRODUCT only). If table name has multiple matches, candidate list will be returned for further confirmation. Difference from ide_get_table_detail: This tool queries dataops platform registered information (including data lineage), requires table name; ide_get_table_detail directly queries data warehouse engine real-time metadata. Difference from integration_get_table_structure: integration queries external data source metadata, requires datasourceId",
61
- flags: [
62
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
63
- { name: "tableName", type: "string", required: true, desc: "Table name (supports fuzzy matching, full table name recommended)" },
64
- { name: "manageMode", type: "string", required: false, desc: "Management mode: TASK_ENV (space task table, default), IDE (IDE table), SYSTEM (system table), AUTHED_SPACE (authorized table). Auto-match if not provided" },
65
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development), PRODUCT (production). If not provided, TASK_ENV returns dual environment info, other modes return corresponding default environment" },
66
- { name: "tableType", type: "number", required: false, desc: "Table type: 0 (physical table, default), 1 (view)" }
67
- ],
68
- risk: "read",
69
- execute: async (ctx) => {
70
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
71
- const result = await callMcpTool(mcpUrl, "datatable_get_table_detail", {
72
- spaceCode: ctx.str("spaceCode"),
73
- tableName: ctx.str("tableName"),
74
- manageMode: ctx.str("manageMode"),
75
- env: ctx.str("env"),
76
- tableType: ctx.num("tableType")
77
- });
78
- return parseMcpResult(result);
79
- }
80
- };
81
-
82
- // src/commands/te-dataops/datatable/dict-search-tables.ts
83
- var dictSearchTables = {
84
- service: "dataops_datatable",
85
- command: "+dict_search_tables",
86
- description: "Search tables in dataops data dictionary, supports fuzzy search by table name or description. Returns up to maxResults results (default 200), plus totalCount and hasMore flags. Returns: entityId (table entity ID), tableName (table name), schema (database name), catalog (catalog name), repoCode (repository code), tableType (0=physical table/1=view), tableComment (table description), tableRemark (table remark). Use cases: Browse or search registered data assets in space. If too many results, narrow range with search parameter. Difference from ide_search_tables: This tool queries dataops platform registered metadata (including business descriptions), ide_search_tables directly queries data warehouse engine (real-time metadata, cross catalog/schema)",
87
- flags: [
88
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
89
- { name: "search", type: "string", required: false, desc: "Search keyword (fuzzy match on table name/remark/description)" },
90
- { name: "maxResults", type: "number", required: false, desc: "Max return count, default 200, max 10000" }
91
- ],
92
- risk: "read",
93
- execute: async (ctx) => {
94
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
95
- const result = await callMcpTool(mcpUrl, "datatable_dict_search_tables", {
96
- spaceCode: ctx.str("spaceCode"),
97
- search: ctx.str("search"),
98
- maxResults: ctx.num("maxResults")
99
- });
100
- return parseMcpResult(result);
101
- }
102
- };
103
-
104
- // src/commands/te-dataops/datatable/list-system-tables.ts
105
- var listSystemTables = {
106
- service: "dataops_datatable",
107
- command: "+list_system_tables",
108
- description: "Search system tables (event tables, user tables, dimension tables), query by project ID or project name. Returns: projectId, projectName, tableName, tableType, schemaName, catalogName, columns (column definitions), tableComment (table description). Note: At least one of projectId or projectName must be provided. Only returns tables user has permission to access",
109
- flags: [
110
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
111
- { name: "projectId", type: "number", required: false, desc: "Project ID" },
112
- { name: "projectName", type: "string", required: false, desc: "Project name" },
113
- { name: "pageNum", type: "number", required: false, desc: "Page number, default 1" },
114
- { name: "pageSize", type: "number", required: false, desc: "Page size, default 20, max 10000" }
115
- ],
116
- risk: "read",
117
- execute: async (ctx) => {
118
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
119
- const result = await callMcpTool(mcpUrl, "datatable_list_system_tables", {
120
- spaceCode: ctx.str("spaceCode"),
121
- projectId: ctx.num("projectId"),
122
- projectName: ctx.str("projectName"),
123
- pageNum: ctx.num("pageNum"),
124
- pageSize: ctx.num("pageSize")
125
- });
126
- return parseMcpResult(result);
127
- }
128
- };
129
-
130
- // src/commands/te-dataops/datatable/create-table.ts
131
- var createTable = {
132
- service: "dataops_datatable",
133
- command: "+create_table",
134
- description: "Create physical tables (DWD/DWS/ADS layer) in space data warehouse. Write operation requires two-step confirmation: First call returns operation preview, set confirmed=true to execute after confirmation. Requires complete CREATE TABLE DDL. Table name rule: ^[a-z][0-9a-z_]{0,127}$. Error will be raised if table already exists. Returns: tableName, repoCode, catalog, schema, message",
135
- flags: [
136
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
137
- { name: "ddl", type: "string", required: true, desc: "Complete CREATE TABLE DDL statement" },
138
- { name: "repoCode", type: "string", required: false, desc: "Repository code, defaults to te_etl if not provided" },
139
- { name: "catalog", type: "string", required: false, desc: "Catalog name, defaults to hive if not provided" },
140
- { name: "schema", type: "string", required: false, desc: "Schema/database name, uses space default task database if not provided" },
141
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute. First call without this parameter or with false for preview, pass true to execute after confirmation" }
142
- ],
143
- risk: "write",
144
- execute: async (ctx) => {
145
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
146
- const result = await callMcpTool(mcpUrl, "datatable_create_table", {
147
- spaceCode: ctx.str("spaceCode"),
148
- ddl: ctx.str("ddl"),
149
- repoCode: ctx.str("repoCode"),
150
- catalog: ctx.str("catalog"),
151
- schema: ctx.str("schema"),
152
- confirmed: ctx.bool("confirmed")
153
- });
154
- return parseMcpResult(result);
155
- }
156
- };
157
-
158
- // src/commands/te-dataops/datatable/create-view.ts
159
- var createView = {
160
- service: "dataops_datatable",
161
- command: "+create_view",
162
- description: "Create views in space data warehouse. Write operation requires two-step confirmation: First call returns operation preview, set confirmed=true to execute after confirmation. Requires complete CREATE VIEW AS SELECT DDL. View name rule: ^[a-z][0-9a-z_]{0,127}$. Referenced source tables must exist. Returns: viewName, repoCode, catalog, schema, message",
163
- flags: [
164
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
165
- { name: "ddl", type: "string", required: true, desc: "Complete CREATE VIEW AS SELECT DDL statement" },
166
- { name: "repoCode", type: "string", required: false, desc: "Repository code, defaults to te_etl if not provided" },
167
- { name: "catalog", type: "string", required: false, desc: "Catalog name, defaults to hive if not provided" },
168
- { name: "schema", type: "string", required: false, desc: "Schema/database name, uses space default task database if not provided" },
169
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute. First call without this parameter or with false for preview, pass true to execute after confirmation" }
170
- ],
171
- risk: "write",
172
- execute: async (ctx) => {
173
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
174
- const result = await callMcpTool(mcpUrl, "datatable_create_view", {
175
- spaceCode: ctx.str("spaceCode"),
176
- ddl: ctx.str("ddl"),
177
- repoCode: ctx.str("repoCode"),
178
- catalog: ctx.str("catalog"),
179
- schema: ctx.str("schema"),
180
- confirmed: ctx.bool("confirmed")
181
- });
182
- return parseMcpResult(result);
183
- }
184
- };
185
-
186
- // src/commands/te-dataops/datatable/get-batch-status.ts
187
- var getBatchStatus = {
188
- service: "dataops_datatable",
189
- command: "+get_batch_status",
190
- description: "Query status of batch creation task and details of each view. Returns: batchId, status (WAIT/RUNNING/SUCCESS/STOP), totalCount, completedCount, failedCount, duration, details (each view: viewName, srcTableName, status, errorMessage). Async task, recommend polling every 3-5 seconds, task ends when status is SUCCESS or STOP",
191
- flags: [
192
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
193
- { name: "batchId", type: "string", required: true, desc: "Batch ID" },
194
- { name: "detailStatus", type: "string", required: false, desc: "Filter by detail status: 1=waiting, 2=creating, 3=success, 4=failed" }
195
- ],
196
- risk: "read",
197
- execute: async (ctx) => {
198
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
199
- const result = await callMcpTool(mcpUrl, "linkview_get_batch_status", {
200
- spaceCode: ctx.str("spaceCode"),
201
- batchId: ctx.str("batchId"),
202
- detailStatus: ctx.str("detailStatus")
203
- });
204
- return parseMcpResult(result);
205
- }
206
- };
207
-
208
- // src/commands/te-dataops/datatable/list-batches.ts
209
- var listBatches = {
210
- service: "dataops_datatable",
211
- command: "+list_batches",
212
- description: "List historical batch creation task records. Returns: batchId, owner, createTime, finishedTime, duration, srcRepoCode, srcCatalog, srcSchema, totalCount, completedCount, failedCount, status",
213
- flags: [
214
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
215
- { name: "status", type: "string", required: false, desc: "Filter by status: 1=waiting, 2=running, 3=success, 4=stopped" }
216
- ],
217
- risk: "read",
218
- execute: async (ctx) => {
219
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
220
- const result = await callMcpTool(mcpUrl, "linkview_list_batches", {
221
- spaceCode: ctx.str("spaceCode"),
222
- status: ctx.str("status")
223
- });
224
- return parseMcpResult(result);
225
- }
226
- };
227
-
228
- // src/commands/te-dataops/datatable/list-source-tables.ts
229
- var listSourceTables = {
230
- service: "dataops_datatable",
231
- command: "+list_source_tables",
232
- description: "List tables under direct connection source schema, used for selecting source tables when creating direct connection views. Returns: tableName, tableType, columns (column definitions), partitionColumns (partition columns). Only displays tables user has permission to access, queries data warehouse engine metadata in real-time",
233
- flags: [
234
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
235
- { name: "srcRepoCode", type: "string", required: true, desc: "Source repository code" },
236
- { name: "srcCatalog", type: "string", required: true, desc: "Source catalog name" },
237
- { name: "srcSchema", type: "string", required: true, desc: "Source schema/database name" },
238
- { name: "search", type: "string", required: false, desc: "Search keyword (table name prefix match)" }
239
- ],
240
- risk: "read",
241
- execute: async (ctx) => {
242
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
243
- const result = await callMcpTool(mcpUrl, "linkview_list_source_tables", {
244
- spaceCode: ctx.str("spaceCode"),
245
- srcRepoCode: ctx.str("srcRepoCode"),
246
- srcCatalog: ctx.str("srcCatalog"),
247
- srcSchema: ctx.str("srcSchema"),
248
- search: ctx.str("search")
249
- });
250
- return parseMcpResult(result);
251
- }
252
- };
253
-
254
- // src/commands/te-dataops/datatable/batch-create.ts
255
- var batchCreate = {
256
- service: "dataops_datatable",
257
- command: "+batch_create",
258
- description: "Batch create direct connection views. Two modes: Full database sync (batchCreationMode=1, create views for batch tables) and failure retry (batchCreationMode=2, retry previously failed views). Write operation requires two-step confirmation. Executes asynchronously, after returning batchId poll progress via linkview_get_batch_status. processType: 1=DEV only, 2=DEV+PROD. viewName cannot conflict with existing tables/views. Single failure does not affect other views",
259
- flags: [
260
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
261
- { name: "srcRepoCode", type: "string", required: true, desc: "Source repository code" },
262
- { name: "srcCatalog", type: "string", required: true, desc: "Source catalog name" },
263
- { name: "srcSchema", type: "string", required: true, desc: "Source schema/database name" },
264
- { name: "processType", type: "number", required: true, desc: "Process type: 1=DEV only, 2=DEV+PROD" },
265
- { name: "batchCreationMode", type: "number", required: true, desc: "Creation mode: 1=full database sync (batch create), 2=failure retry" },
266
- { name: "owner", type: "string", required: false, desc: "Owner openId" },
267
- { name: "viewInfos", type: "string", required: true, desc: "View info JSON array, each item contains {viewName, srcTableName, srcTableType}" },
268
- { name: "parentBatchId", type: "string", required: false, desc: "Previous batch ID, required for failure retry mode" },
269
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute. First call without this parameter or with false for preview, pass true to execute after confirmation" }
270
- ],
271
- risk: "write",
272
- execute: async (ctx) => {
273
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
274
- const result = await callMcpTool(mcpUrl, "linkview_batch_create", {
275
- spaceCode: ctx.str("spaceCode"),
276
- srcRepoCode: ctx.str("srcRepoCode"),
277
- srcCatalog: ctx.str("srcCatalog"),
278
- srcSchema: ctx.str("srcSchema"),
279
- processType: ctx.num("processType"),
280
- batchCreationMode: ctx.num("batchCreationMode"),
281
- owner: ctx.str("owner"),
282
- viewInfos: ctx.str("viewInfos"),
283
- parentBatchId: ctx.str("parentBatchId"),
284
- confirmed: ctx.bool("confirmed")
285
- });
286
- return parseMcpResult(result);
287
- }
288
- };
289
-
290
- // src/commands/te-dataops/datatable/index.ts
291
- var commands = [
292
- listTablesByPage,
293
- structByRepo,
294
- getTableDetail,
295
- dictSearchTables,
296
- listSystemTables,
297
- createTable,
298
- createView,
299
- getBatchStatus,
300
- listBatches,
301
- listSourceTables,
302
- batchCreate
303
- ];
304
- var datatable_default = commands;
305
-
306
- // src/commands/te-dataops/flow/get-flow-detail.ts
307
- var getFlowDetail = {
308
- service: "dataops_flow",
309
- command: "+get_flow_detail",
310
- description: "Get task flow basic information, including name, status, owner, schedule status, creation/modification time. Returns: flowCode, flowName, status, owner, scheduled, createTime, updateTime. Requires flowCode (can be obtained via flow_list_flows). Related tools: flow_get_flow_dag, flow_get_schedule_config",
311
- flags: [
312
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
313
- { name: "flowCode", type: "number", required: true, desc: "Task flow code (can be obtained via flow_list_flows)" },
314
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
315
- ],
316
- risk: "read",
317
- execute: async (ctx) => {
318
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
319
- const result = await callMcpTool(mcpUrl, "flow_get_flow_detail", {
320
- spaceCode: ctx.str("spaceCode"),
321
- flowCode: ctx.num("flowCode"),
322
- env: ctx.str("env")
323
- });
324
- return parseMcpResult(result);
325
- }
326
- };
327
-
328
- // src/commands/te-dataops/flow/list-flow-instances.ts
329
- var listFlowInstances = {
330
- service: "dataops_flow",
331
- command: "+list_flow_instances",
332
- description: "Query the list of running instances of a task flow, arranged in reverse chronological order of execution time. Defaults to querying production environment (PROD), returns the most recent 30 records. Returns: executeId, status, startTime, endTime, triggerType. Note: This tool defaults to PROD environment (unlike most tools which default to DEV). executeId can be used for flow_get_execute_record, flow_get_execute_dag, flow_stop_flow. Difference from operations_search_flow_instances: The two use different ID systems (executeId vs flowInstanceId), cannot be interchanged",
333
- flags: [
334
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
335
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
336
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment), PROD (production environment, default). Defaults to PROD when querying instance list" },
337
- { name: "size", type: "number", required: false, desc: "Number of results to return, defaults to 30 if not provided" }
338
- ],
339
- risk: "read",
340
- execute: async (ctx) => {
341
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
342
- const result = await callMcpTool(mcpUrl, "flow_list_flow_instances", {
343
- spaceCode: ctx.str("spaceCode"),
344
- flowCode: ctx.num("flowCode"),
345
- env: ctx.str("env"),
346
- size: ctx.num("size")
347
- });
348
- return parseMcpResult(result);
349
- }
350
- };
351
-
352
- // src/commands/te-dataops/flow/get-execute-record.ts
353
- var getExecuteRecord = {
354
- service: "dataops_flow",
355
- command: "+get_execute_record",
356
- description: "Query details of a specified execution record, including execution status, start/end time, trigger method. Returns: executeId, status, startTime, endTime, triggerType, env. Requires executeId (can be obtained via flow_list_flow_instances). Related tools: flow_get_execute_dag",
357
- flags: [
358
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
359
- { name: "executeId", type: "number", required: true, desc: "Execution record ID (can be obtained via flow_list_flow_instances)" }
360
- ],
361
- risk: "read",
362
- execute: async (ctx) => {
363
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
364
- const result = await callMcpTool(mcpUrl, "flow_get_execute_record", {
365
- spaceCode: ctx.str("spaceCode"),
366
- executeId: ctx.num("executeId")
367
- });
368
- return parseMcpResult(result);
369
- }
370
- };
371
-
372
- // src/commands/te-dataops/flow/get-execute-dag.ts
373
- var getExecuteDag = {
374
- service: "dataops_flow",
375
- command: "+get_execute_dag",
376
- description: "Query the runtime-state DAG of an execution instance, including execution status (success/failure/running/waiting) of each task node. Returns: tasks (list of taskCode/taskName/status/bsTaskInstanceId), relations. Suitable for diagnosing task flow execution issues, locating failed nodes. bsTaskInstanceId + taskCode are used for flow_get_task_instance_log. Difference from flow_get_flow_dag: This tool returns runtime-state DAG (including execution status), flow_get_flow_dag returns definition-state DAG (static structure)",
377
- flags: [
378
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
379
- { name: "executeId", type: "number", required: true, desc: "Execution record ID (can be obtained via flow_list_flow_instances)" }
380
- ],
381
- risk: "read",
382
- execute: async (ctx) => {
383
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
384
- const result = await callMcpTool(mcpUrl, "flow_get_execute_dag", {
385
- spaceCode: ctx.str("spaceCode"),
386
- executeId: ctx.num("executeId")
387
- });
388
- return parseMcpResult(result);
389
- }
390
- };
391
-
392
- // src/commands/te-dataops/flow/get-task-instance-log.ts
393
- var getTaskInstanceLog = {
394
- service: "dataops_flow",
395
- command: "+get_task_instance_log",
396
- description: "Query running logs of a specified task instance, supports pagination. Returns: log, offset, hasMore. Suitable for diagnosing task execution failure causes. Note: This tool does not require spaceCode. For large logs can use startOffset/limit for paginated reading. Requires bsTaskInstanceId and taskCode (can be obtained via flow_get_execute_dag)",
397
- flags: [
398
- { name: "bsTaskInstanceId", type: "number", required: true, desc: "BS task instance ID (can be obtained via flow_get_execute_dag)" },
399
- { name: "taskCode", type: "number", required: true, desc: "Task code (can be obtained via flow_get_execute_dag)" },
400
- { name: "startOffset", type: "number", required: false, desc: "Starting offset, defaults to 0 if not provided" },
401
- { name: "limit", type: "number", required: false, desc: "Number of lines to return, defaults to 100, max 10000" }
402
- ],
403
- risk: "read",
404
- execute: async (ctx) => {
405
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
406
- const result = await callMcpTool(mcpUrl, "flow_get_task_instance_log", {
407
- bsTaskInstanceId: ctx.num("bsTaskInstanceId"),
408
- taskCode: ctx.num("taskCode"),
409
- startOffset: ctx.num("startOffset"),
410
- limit: ctx.num("limit")
411
- });
412
- return parseMcpResult(result);
413
- }
414
- };
415
-
416
- // src/commands/te-dataops/flow/get-schedule-config.ts
417
- var getScheduleConfig = {
418
- service: "dataops_flow",
419
- command: "+get_schedule_config",
420
- description: "Get schedule configuration information of a task flow. Returns: scheduled (whether scheduled), scheduleType (schedule type: CRON/INTERVAL), cron (cron expression), startTime/endTime (validity period). Related tools: flow_save_schedule_config",
421
- flags: [
422
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
423
- { name: "flowCode", type: "number", required: true, desc: "Task flow code (can be obtained via flow_list_flows)" },
424
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
425
- ],
426
- risk: "read",
427
- execute: async (ctx) => {
428
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
429
- const result = await callMcpTool(mcpUrl, "flow_get_schedule_config", {
430
- spaceCode: ctx.str("spaceCode"),
431
- flowCode: ctx.num("flowCode"),
432
- env: ctx.str("env")
433
- });
434
- return parseMcpResult(result);
435
- }
436
- };
437
-
438
- // src/commands/te-dataops/flow/list-flows.ts
439
- var listFlows = {
440
- service: "dataops_flow",
441
- command: "+list_flows",
442
- description: "Search/list task flows under a space, supports fuzzy search by task flow name. Returns: flowCode (task flow code), flowName (name), status (status), owner (owner). This is the entry tool for task flow management, after getting flowCode can call other flow_* tools. Not passing keyword returns all task flows. Related tools: flow_get_flow_detail, flow_get_flow_dag, flow_list_flow_instances",
443
- flags: [
444
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
445
- { name: "keyword", type: "string", required: false, desc: "Search keyword (task flow name fuzzy match)" }
446
- ],
447
- risk: "read",
448
- execute: async (ctx) => {
449
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
450
- const result = await callMcpTool(mcpUrl, "flow_list_flows", {
451
- spaceCode: ctx.str("spaceCode"),
452
- keyword: ctx.str("keyword")
453
- });
454
- return parseMcpResult(result);
455
- }
456
- };
457
-
458
- // src/commands/te-dataops/flow/get-flow-dag.ts
459
- var getFlowDag = {
460
- service: "dataops_flow",
461
- command: "+get_flow_dag",
462
- description: "Get the definition-state DAG structure of a task flow, including all task nodes, dependencies between nodes, and canvas position information. Returns: tasks (list of taskCode/taskName/taskType), relations (dependencies), locations (canvas positions). Used to understand the orchestration structure of task flows. The returned taskCode can be used in tools like flow_save_task_definition. Difference from flow_get_execute_dag: This tool returns definition-state DAG (static structure), flow_get_execute_dag returns runtime-state DAG (including execution status of each node)",
463
- flags: [
464
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
465
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
466
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
467
- ],
468
- risk: "read",
469
- execute: async (ctx) => {
470
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
471
- const result = await callMcpTool(mcpUrl, "flow_get_flow_dag", {
472
- spaceCode: ctx.str("spaceCode"),
473
- flowCode: ctx.num("flowCode"),
474
- env: ctx.str("env")
475
- });
476
- return parseMcpResult(result);
477
- }
478
- };
479
-
480
- // src/commands/te-dataops/flow/save-schedule-config.ts
481
- var saveScheduleConfig = {
482
- service: "dataops_flow",
483
- command: "+save_schedule_config",
484
- description: "Save task flow schedule configuration. Write operation requires two-step confirmation. scheduled: 1(enabled), 0(off). scheduleType: CRON(cron expression-based, needs cron parameter) or INTERVAL (fixed interval). cron example: '0 0 2 * * ?' represents daily at 2 AM. Related tools: flow_get_schedule_config",
485
- flags: [
486
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
487
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
488
- { name: "scheduled", type: "number", required: true, desc: "Enable schedule: 1 (enabled) or 0 (disabled)" },
489
- { name: "scheduleType", type: "string", required: false, desc: "Schedule type: CRON (cron expression-based, needs cron parameter) or INTERVAL (fixed interval)" },
490
- { name: "cron", type: "string", required: false, desc: "Cron expression (required when scheduleType=CRON, e.g., '0 0 2 * * ?' represents daily at 2 AM)" },
491
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
492
- ],
493
- risk: "write",
494
- execute: async (ctx) => {
495
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
496
- const result = await callMcpTool(mcpUrl, "flow_save_schedule_config", {
497
- spaceCode: ctx.str("spaceCode"),
498
- flowCode: ctx.num("flowCode"),
499
- scheduled: ctx.num("scheduled"),
500
- scheduleType: ctx.str("scheduleType"),
501
- cron: ctx.str("cron"),
502
- confirmed: ctx.bool("confirmed")
503
- });
504
- return parseMcpResult(result);
505
- }
506
- };
507
-
508
- // src/commands/te-dataops/flow/execute-flow.ts
509
- var executeFlow = {
510
- service: "dataops_flow",
511
- command: "+execute_flow",
512
- description: "Manually trigger task flow execution. Write operation requires two-step confirmation. Executes in DEV environment by default, can specify PROD environment via env parameter. Returns: executeId, status. Related tools: flow_list_flow_instances (view execution history), flow_stop_flow (stop execution)",
513
- flags: [
514
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
515
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
516
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" },
517
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
518
- ],
519
- risk: "write",
520
- execute: async (ctx) => {
521
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
522
- const result = await callMcpTool(mcpUrl, "flow_execute_flow", {
523
- spaceCode: ctx.str("spaceCode"),
524
- flowCode: ctx.num("flowCode"),
525
- env: ctx.str("env"),
526
- confirmed: ctx.bool("confirmed")
527
- });
528
- return parseMcpResult(result);
529
- }
530
- };
531
-
532
- // src/commands/te-dataops/flow/release-flow.ts
533
- var releaseFlow = {
534
- service: "dataops_flow",
535
- command: "+release_flow",
536
- description: "Release a task flow, syncing task flow definition from DEV environment to PROD environment. Write operation requires two-step confirmation. After release, PROD scheduling takes effect immediately. It will not interrupt currently running instances, next schedule will use the new version. Returns: flowCode, flowName, releaseId, releaseStatus, message, changes(summary of added/modified/deleted task nodes). Related tools: flow_execute_flow (verify in DEV before publishing), flow_list_flow_instances (view PROD execution), flow_offline_flow (paired: offline stops scheduling, release starts scheduling)",
537
- flags: [
538
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
539
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
540
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
541
- ],
542
- risk: "write",
543
- execute: async (ctx) => {
544
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
545
- const result = await callMcpTool(mcpUrl, "flow_release_flow", {
546
- spaceCode: ctx.str("spaceCode"),
547
- flowCode: ctx.num("flowCode"),
548
- confirmed: ctx.bool("confirmed")
549
- });
550
- return parseMcpResult(result);
551
- }
552
- };
553
-
554
- // src/commands/te-dataops/flow/update-flow.ts
555
- var updateFlow = {
556
- service: "dataops_flow",
557
- command: "+update_flow",
558
- description: "Update task flow basic information (name/description/owner). Write operation requires two-step confirmation: first call returns operation preview (with before/after comparison), confirm by setting confirmed=true to execute update. Only pass in fields that need to be modified, unpassed fields remain unchanged",
559
- flags: [
560
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
561
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
562
- { name: "flowName", type: "string", required: false, desc: "New name (will not modify if not provided)" },
563
- { name: "remark", type: "string", required: false, desc: "New description (will not modify if not provided)" },
564
- { name: "owner", type: "string", required: false, desc: "New owner openId (will not modify if not provided)" },
565
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
566
- ],
567
- risk: "write",
568
- execute: async (ctx) => {
569
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
570
- const result = await callMcpTool(mcpUrl, "flow_update_flow", {
571
- spaceCode: ctx.str("spaceCode"),
572
- flowCode: ctx.num("flowCode"),
573
- flowName: ctx.str("flowName"),
574
- remark: ctx.str("remark"),
575
- owner: ctx.str("owner"),
576
- confirmed: ctx.bool("confirmed")
577
- });
578
- return parseMcpResult(result);
579
- }
580
- };
581
-
582
- // src/commands/te-dataops/flow/create-flow.ts
583
- var createFlow = {
584
- service: "dataops_flow",
585
- command: "+create_flow",
586
- description: "Create a task flow. Write operation requires two-step confirmation: first call (confirmed not provided or false) returns operation preview, confirm by setting confirmed=true to execute creation. Returns: flowCode, flowName, status. After creation, you add task nodes via flow_create_task, configure scheduling via flow_save_schedule_config",
587
- flags: [
588
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
589
- { name: "flowName", type: "string", required: true, desc: "Task flow name" },
590
- { name: "remark", type: "string", required: false, desc: "Description" },
591
- { name: "owner", type: "string", required: false, desc: "Owner openId" },
592
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
593
- ],
594
- risk: "write",
595
- execute: async (ctx) => {
596
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
597
- const result = await callMcpTool(mcpUrl, "flow_create_flow", {
598
- spaceCode: ctx.str("spaceCode"),
599
- flowName: ctx.str("flowName"),
600
- remark: ctx.str("remark"),
601
- owner: ctx.str("owner"),
602
- confirmed: ctx.bool("confirmed")
603
- });
604
- return parseMcpResult(result);
605
- }
606
- };
607
-
608
- // src/commands/te-dataops/flow/stop-flow.ts
609
- var stopFlow = {
610
- service: "dataops_flow",
611
- command: "+stop_flow",
612
- description: "Stop a running task flow instance. Write operation requires two-step confirmation. Requires executeId (can be obtained via flow_list_flow_instances). Note: Stopping will terminate currently running tasks, which operation cannot be undone",
613
- flags: [
614
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
615
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
616
- { name: "executeId", type: "number", required: true, desc: "Execution record ID (can be obtained via flow_list_flow_instances)" },
617
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
618
- ],
619
- risk: "write",
620
- execute: async (ctx) => {
621
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
622
- const result = await callMcpTool(mcpUrl, "flow_stop_flow", {
623
- spaceCode: ctx.str("spaceCode"),
624
- flowCode: ctx.num("flowCode"),
625
- executeId: ctx.num("executeId"),
626
- confirmed: ctx.bool("confirmed")
627
- });
628
- return parseMcpResult(result);
629
- }
630
- };
631
-
632
- // src/commands/te-dataops/flow/get-task-params.ts
633
- var getTaskParams = {
634
- service: "dataops_flow",
635
- command: "+get_task_params",
636
- description: "Query task node parameter list, returns system parameters and custom parameters. Read-only operation, no two-step confirmation required. Returns: paramKey (parameter key), paramValue (parameter value), paramType (parameter type). Parameters can be referenced in SQL via ${paramKey}. Related tools: repo_list_support_params (view space-level parameters)",
637
- flags: [
638
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
639
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
640
- { name: "taskCode", type: "number", required: true, desc: "Task code" },
641
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
642
- ],
643
- risk: "read",
644
- execute: async (ctx) => {
645
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
646
- const result = await callMcpTool(mcpUrl, "flow_get_task_params", {
647
- spaceCode: ctx.str("spaceCode"),
648
- flowCode: ctx.num("flowCode"),
649
- taskCode: ctx.num("taskCode"),
650
- env: ctx.str("env")
651
- });
652
- return parseMcpResult(result);
653
- }
654
- };
655
-
656
- // src/commands/te-dataops/flow/validate-task-sql.ts
657
- var validateTaskSql = {
658
- service: "dataops_flow",
659
- command: "+validate_task_sql",
660
- description: "Validate TRINO_SQL task SQL syntax and semantics (supports DQL/DML/DDL, validation only without execution). Read-only operation, no two-step confirmation required. Returns: valid (whether passed), message (validation info), errorType (SYNTAX_ERROR/SEMANTIC_ERROR/PERMISSION_ERROR, etc.), errorPosition (line/column), suggestions (fix suggestions list). Semantic validation checks table/column existence, type matching, permissions, etc. Inherits task parameter context (e.g., ${ws_run_date} resolves to actual value). Related tools: Use with flow_save_task_definition (validate before save). Difference from integration_validate_sql: integration only validates external datasource DDL",
661
- flags: [
662
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
663
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
664
- { name: "taskCode", type: "number", required: true, desc: "Task code" },
665
- { name: "sql", type: "string", required: true, desc: "SQL statement to validate" },
666
- { name: "repoCode", type: "string", required: false, desc: "Repository code, defaults to te_etl if not provided" },
667
- { name: "catalog", type: "string", required: false, desc: "Catalog name, defaults to hive if not provided" },
668
- { name: "schema", type: "string", required: false, desc: "Schema/database name" },
669
- { name: "engineType", type: "string", required: false, desc: "SQL execution engine: TASK_ENGINE_TRINO (default), TASK_ENGINE_STARROCKS" }
670
- ],
671
- risk: "read",
672
- execute: async (ctx) => {
673
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
674
- const result = await callMcpTool(mcpUrl, "flow_validate_task_sql", {
675
- spaceCode: ctx.str("spaceCode"),
676
- flowCode: ctx.num("flowCode"),
677
- taskCode: ctx.num("taskCode"),
678
- sql: ctx.str("sql"),
679
- repoCode: ctx.str("repoCode"),
680
- catalog: ctx.str("catalog"),
681
- schema: ctx.str("schema"),
682
- engineType: ctx.str("engineType")
683
- });
684
- return parseMcpResult(result);
685
- }
686
- };
687
-
688
- // src/commands/te-dataops/flow/save-task-definition.ts
689
- var saveTaskDefinition = {
690
- service: "dataops_flow",
691
- command: "+save_task_definition",
692
- description: 'Save task definition, including SQL content, retry strategy, timeout configuration, etc. Write operation requires two-step confirmation. taskContentJson format varies by taskType: TRINO_SQL type: {"sql":"SELECT ...","repoCode":"xxx","catalog":"hive","schema":"db"}; SHELL type: {"script":"#!/bin/bash\\n..."}. Can get taskCode of existing tasks via flow_get_flow_dag. Related tools: flow_get_task_params (view available parameters)',
693
- flags: [
694
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
695
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
696
- { name: "taskCode", type: "number", required: true, desc: "Task code" },
697
- { name: "taskContentJson", type: "string", required: false, desc: "Task content JSON (includes SQL etc., format varies by taskType)" },
698
- { name: "failRetryTimes", type: "number", required: false, desc: "Failure retry count, defaults to no retry if not provided" },
699
- { name: "failRetryInterval", type: "number", required: false, desc: "Failure retry interval (seconds)" },
700
- { name: "timeout", type: "number", required: false, desc: "Timeout duration (minutes)" },
701
- { name: "owner", type: "string", required: false, desc: "Owner openId" },
702
- { name: "remark", type: "string", required: false, desc: "Description" },
703
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
704
- ],
705
- risk: "write",
706
- execute: async (ctx) => {
707
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
708
- const result = await callMcpTool(mcpUrl, "flow_save_task_definition", {
709
- spaceCode: ctx.str("spaceCode"),
710
- flowCode: ctx.num("flowCode"),
711
- taskCode: ctx.num("taskCode"),
712
- taskContentJson: ctx.str("taskContentJson"),
713
- failRetryTimes: ctx.num("failRetryTimes"),
714
- failRetryInterval: ctx.num("failRetryInterval"),
715
- timeout: ctx.num("timeout"),
716
- owner: ctx.str("owner"),
717
- remark: ctx.str("remark"),
718
- confirmed: ctx.bool("confirmed")
719
- });
720
- return parseMcpResult(result);
721
- }
722
- };
723
-
724
- // src/commands/te-dataops/flow/add-task-relation.ts
725
- var addTaskRelation = {
726
- service: "dataops_flow",
727
- command: "+add_task_relation",
728
- description: "Add task dependency relationship (DAG connection), specify pre-task (upstream) and post-task (downstream). Write operation requires two-step confirmation. Note: Cannot create circular dependencies. Related tools: flow_delete_task_relation, flow_get_flow_dag",
729
- flags: [
730
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
731
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
732
- { name: "preTaskCode", type: "number", required: true, desc: "Pre-task code (upstream)" },
733
- { name: "taskCode", type: "number", required: true, desc: "Current task code (downstream)" },
734
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
735
- ],
736
- risk: "write",
737
- execute: async (ctx) => {
738
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
739
- const result = await callMcpTool(mcpUrl, "flow_add_task_relation", {
740
- spaceCode: ctx.str("spaceCode"),
741
- flowCode: ctx.num("flowCode"),
742
- preTaskCode: ctx.num("preTaskCode"),
743
- taskCode: ctx.num("taskCode"),
744
- confirmed: ctx.bool("confirmed")
745
- });
746
- return parseMcpResult(result);
747
- }
748
- };
749
-
750
- // src/commands/te-dataops/flow/create-task.ts
751
- var createTask = {
752
- service: "dataops_flow",
753
- command: "+create_task",
754
- description: "Create a task node in a task flow. Write operation requires two-step confirmation. taskType options: TRINO_SQL (Trino SQL query task), SHELL (Shell script task), FLOW_CHECK (Flow check node), TASK_CHECK (Task check node), OFFLINE_SYNC (Offline data sync), APP_sync (Application data sync), PLACE_HOLDER (Placeholder node). When taskType is OFFLINE_SYNC or APP_SYNC, you can specify the sync solution to bind via syncId parameter. Returns: taskCode, taskName, taskType. Related tools: flow_save_task_definition (save task definition), flow_add_task_relation (add dependency)",
755
- flags: [
756
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
757
- { name: "flowCode", type: "number", required: true, desc: "Task flow code" },
758
- { name: "taskName", type: "string", required: true, desc: "Task name" },
759
- { name: "taskType", type: "string", required: true, desc: "Task type: TRINO_SQL, SHELL, FLOW_CHECK, TASK_CHECK, OFFLINE_SYNC, APP_SYNC, PLACE_HOLDER" },
760
- { name: "syncId", type: "string", required: false, desc: "Sync solution ID (valid only when taskType is OFFLINE_SYNC or APP_SYNC)" },
761
- { name: "preTaskCode", type: "number", required: false, desc: "Pre-task code (upstream dependency)" },
762
- { name: "owner", type: "string", required: false, desc: "Owner openId" },
763
- { name: "remark", type: "string", required: false, desc: "Description" },
764
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
765
- ],
766
- risk: "write",
767
- execute: async (ctx) => {
768
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
769
- const result = await callMcpTool(mcpUrl, "flow_create_task", {
770
- spaceCode: ctx.str("spaceCode"),
771
- flowCode: ctx.num("flowCode"),
772
- taskName: ctx.str("taskName"),
773
- taskType: ctx.str("taskType"),
774
- preTaskCode: ctx.num("preTaskCode"),
775
- owner: ctx.str("owner"),
776
- remark: ctx.str("remark"),
777
- confirmed: ctx.bool("confirmed")
778
- });
779
- return parseMcpResult(result);
780
- }
781
- };
782
-
783
- // src/commands/te-dataops/flow/index.ts
784
- var commands2 = [
785
- getFlowDetail,
786
- listFlowInstances,
787
- getExecuteRecord,
788
- getExecuteDag,
789
- getTaskInstanceLog,
790
- getScheduleConfig,
791
- listFlows,
792
- getFlowDag,
793
- saveScheduleConfig,
794
- executeFlow,
795
- releaseFlow,
796
- updateFlow,
797
- createFlow,
798
- stopFlow,
799
- getTaskParams,
800
- validateTaskSql,
801
- saveTaskDefinition,
802
- addTaskRelation,
803
- createTask
804
- ];
805
- var flow_default = commands2;
806
-
807
- // src/commands/te-dataops/integration/list-datasource-components.ts
808
- var listDatasourceComponents = {
809
- service: "dataops_integration",
810
- command: "+list_datasource_components",
811
- description: "List all datasource component types supported by the platform and their connection configuration parameters. Returns: componentName (component name), componentType (type classification), description (description), requiredFields (required parameters, key is the exact field name, includes doNotUseNames listing common incorrect aliases), optionalFields (optional parameters), envJsonExampleObject (environment configuration JSON example object, can be used directly as template), importantNotes (component-level important notes, must be followed). Call this tool before creating a datasource, construct the envJsonList parameter required by integration_add_datasource based on the returned requiredFields and envJsonExampleObject. Note: JSON keys in envJsonList must exactly match the keys in requiredFields, cannot use aliases listed in doNotUseNames. Supported components include: MySQL, PostgreSQL, ClickHouse, StarRocks, SelectDB, HBase, MongoDB, Redis, LarkBitable, OSS, S3, HDFS",
812
- flags: [],
813
- risk: "read",
814
- execute: async (ctx) => {
815
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
816
- const result = await callMcpTool(
817
- mcpUrl,
818
- "integration_list_datasource_components",
819
- {}
820
- );
821
- return parseMcpResult(result);
822
- }
823
- };
824
-
825
- // src/commands/te-dataops/integration/list-space-datasources.ts
826
- var listSpaceDatasources = {
827
- service: "dataops_integration",
828
- command: "+list_space_datasources",
829
- description: "Query datasources under a space, supports optional filtering by name and component type, all results include complete configuration details. Not passing filter parameters returns all datasources under the space; pass dataSourceName for exact name matching (business unique, returns 0 or 1 result); pass componentName to filter by component type (e.g., only view all MySQL datasources); two filter parameters can be used alone or in combination. Returns: datasourceId (datasource ID, for subsequent Tool calls), dataSourceComponentName (component type), dataSourceName (name), dataSourceRemark (remark), dataSourceStatus (NORMAL/OFFLINE), connectStatus (SUCCESS/CLOSED/FAILED), syncTaskNum (number of sync tasks), sharedConfig (whether shared configuration), connectConfig (connection configuration, includes envJsonList, password desensitized), connectFails (connection failure reasons), lastConnectTime (last successful connection time)",
830
- flags: [
831
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
832
- { name: "datasourceName", type: "string", required: false, desc: "Datasource name, exact filter (business unique within space)" },
833
- { name: "componentName", type: "string", required: false, desc: "Component type (e.g., MySQL, Hive, ClickHouse), filter by type" }
834
- ],
835
- risk: "read",
836
- execute: async (ctx) => {
837
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
838
- const result = await callMcpTool(mcpUrl, "integration_list_space_datasources", {
839
- spaceCode: ctx.str("spaceCode"),
840
- datasourceName: ctx.str("datasourceName"),
841
- componentName: ctx.str("componentName")
842
- });
843
- return parseMcpResult(result);
844
- }
845
- };
846
-
847
- // src/commands/te-dataops/integration/test-datasource-connect.ts
848
- var testDatasourceConnect = {
849
- service: "dataops_integration",
850
- command: "+test_datasource_connect",
851
- description: "Test datasource connection (temporary configuration, not saved). Pass component name and connection configuration JSON, returns connection success or failure and error information. Suitable for verifying connection parameters are correct before creating a datasource, avoiding connection failure after creation. Difference from integration_add_datasource: This tool only tests connection without creating datasource, can debug repeatedly until connection succeeds before formally creating",
852
- flags: [
853
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
854
- { name: "componentName", type: "string", required: true, desc: "Component name (e.g., MySQL, Hive, ClickHouse)" },
855
- { name: "configValue", type: "string", required: true, desc: "Connection configuration JSON string" }
856
- ],
857
- risk: "read",
858
- execute: async (ctx) => {
859
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
860
- const result = await callMcpTool(mcpUrl, "integration_test_datasource_connect", {
861
- spaceCode: ctx.str("spaceCode"),
862
- componentName: ctx.str("componentName"),
863
- configValue: ctx.str("configValue")
864
- });
865
- return parseMcpResult(result);
866
- }
867
- };
868
-
869
- // src/commands/te-dataops/integration/list-datasource-tables.ts
870
- var listDatasourceTables = {
871
- service: "dataops_integration",
872
- command: "+list_datasource_tables",
873
- description: "Get the list of tables under a specified database in a datasource. Returns: list of table names. Requires datasourceId and database (database name can be obtained via integration_list_datasource_databases). Suitable for browsing tables in a datasource, finding target tables. After getting table names, can call integration_get_table_structure to view column definitions, or call integration_preview_datasource_data to preview data",
874
- flags: [
875
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
876
- { name: "datasourceId", type: "string", required: true, desc: "Datasource ID" },
877
- { name: "database", type: "string", required: true, desc: "Database/schema name" },
878
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
879
- ],
880
- risk: "read",
881
- execute: async (ctx) => {
882
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
883
- const result = await callMcpTool(mcpUrl, "integration_list_datasource_tables", {
884
- spaceCode: ctx.str("spaceCode"),
885
- datasourceId: ctx.str("datasourceId"),
886
- database: ctx.str("database"),
887
- env: ctx.str("env")
888
- });
889
- return parseMcpResult(result);
890
- }
891
- };
892
-
893
- // src/commands/te-dataops/integration/get-table-structure.ts
894
- var getTableStructure = {
895
- service: "dataops_integration",
896
- command: "+get_table_structure",
897
- description: "Get column definitions and partition information for a datasource table. Returns: columns (column name/type/comment), partitions (partition information). Requires datasourceId, database, and tablePath (table path). Suitable for understanding table structure, confirming source table schema before creating application tables. Difference from datatable_get_table_detail: This tool queries external datasource metadata, requires datasourceId; datatable_get_table_detail queries dataops platform registered information",
898
- flags: [
899
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
900
- { name: "datasourceId", type: "string", required: true, desc: "Datasource ID" },
901
- { name: "database", type: "string", required: true, desc: "Database name" },
902
- { name: "tablePath", type: "string", required: true, desc: "Table path (e.g., schema.table)" },
903
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
904
- ],
905
- risk: "read",
906
- execute: async (ctx) => {
907
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
908
- const result = await callMcpTool(mcpUrl, "integration_get_table_structure", {
909
- spaceCode: ctx.str("spaceCode"),
910
- datasourceId: ctx.str("datasourceId"),
911
- database: ctx.str("database"),
912
- tablePath: ctx.str("tablePath"),
913
- env: ctx.str("env")
914
- });
915
- return parseMcpResult(result);
916
- }
917
- };
918
-
919
- // src/commands/te-dataops/integration/list-sync-datasources.ts
920
- var listSyncDatasources = {
921
- service: "dataops_integration",
922
- command: "+list_sync_datasources",
923
- description: "Get list of datasources available for sync solutions, categorized by source (data source) and sink (data target). Returns: sources (list of datasources that can be used as source), sinks (list of datasources that can be used as target), each item contains datasourceId, name, component type. Suitable for understanding which datasources can be used as source or target before creating sync solutions. Difference from integration_list_space_datasources: This tool categorizes by sync role (source/sink) and only returns datasources available for sync; list_space_datasources returns all datasources under the space with complete configuration",
924
- flags: [
925
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
926
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
927
- ],
928
- risk: "read",
929
- execute: async (ctx) => {
930
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
931
- const result = await callMcpTool(mcpUrl, "integration_list_sync_datasources", {
932
- spaceCode: ctx.str("spaceCode"),
933
- env: ctx.str("env")
934
- });
935
- return parseMcpResult(result);
936
- }
937
- };
938
-
939
- // src/commands/te-dataops/integration/list-datasource-databases.ts
940
- var listDatasourceDatabases = {
941
- service: "dataops_integration",
942
- command: "+list_datasource_databases",
943
- description: "Get the list of databases/schemas under a datasource. Returns: list of database/schema names. Requires datasourceId (can be obtained via integration_list_space_datasources). Suitable for browsing datasource structure, providing database name parameters for subsequent table queries. Call chain: integration_list_space_datasources \u2192 this tool \u2192 integration_list_datasource_tables \u2192 integration_get_table_structure",
944
- flags: [
945
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
946
- { name: "datasourceId", type: "string", required: true, desc: "Datasource ID" },
947
- { name: "env", type: "string", required: false, desc: "Environment: DEV (development environment, default), PROD (production environment)" }
948
- ],
949
- risk: "read",
950
- execute: async (ctx) => {
951
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
952
- const result = await callMcpTool(mcpUrl, "integration_list_datasource_databases", {
953
- spaceCode: ctx.str("spaceCode"),
954
- datasourceId: ctx.str("datasourceId"),
955
- env: ctx.str("env")
956
- });
957
- return parseMcpResult(result);
958
- }
959
- };
960
-
961
- // src/commands/te-dataops/integration/online-datasource.ts
962
- var onlineDatasource = {
963
- service: "dataops_integration",
964
- command: "+online_datasource",
965
- description: "Batch online datasources. Write operation requires two-step confirmation: First call returns operation preview, after confirmation set confirmed=true to execute online. After online, datasource status becomes NORMAL, associated sync solutions can execute normally. Used for scenarios where offline datasources need to be re-enabled",
966
- flags: [
967
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
968
- { name: "dataSourceNames", type: "string", required: true, desc: "Datasource name list (comma-separated)" },
969
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute, defaults to false if not passed" }
970
- ],
971
- risk: "write",
972
- execute: async (ctx) => {
973
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
974
- const result = await callMcpTool(mcpUrl, "integration_online_datasource", {
975
- spaceCode: ctx.str("spaceCode"),
976
- dataSourceNames: ctx.str("dataSourceNames"),
977
- confirmed: ctx.bool("confirmed")
978
- });
979
- return parseMcpResult(result);
980
- }
981
- };
982
-
983
- // src/commands/te-dataops/integration/add-datasource.ts
984
- var addDatasource = {
985
- service: "dataops_integration",
986
- command: "+add_datasource",
987
- description: "Create a datasource. Write operation requires two-step confirmation: First call returns operation preview (including envJsonExampleObject parameter format example and importantNotes for the component), after confirmation set confirmed=true to execute creation. Before creation, must call integration_list_datasource_components to get requiredFields and envJsonExampleObject. JSON key in envJsonList must be exactly the same as key in requiredFields, abbreviations or aliases are not allowed (refer to doNotUseNames for incorrect names). envJsonList format: JSON array string, each element contains connection parameters required by the component (refer to envJsonExampleObject). When sharedConfig=true, envJsonList only needs 1 element (tool will automatically copy to DEV and PROD); When sharedConfig=false, need to pass 2 elements, first is DEV environment config, second is PROD environment config",
988
- flags: [
989
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
990
- { name: "componentName", type: "string", required: true, desc: "Component name, must be exactly the same as componentName returned by integration_list_datasource_components (e.g. MySQL, ClickHouse, OSS, LarkBitable, etc.)" },
991
- { name: "dataSourceName", type: "string", required: true, desc: "Datasource name (1-80 characters)" },
992
- { name: "dataSourceRemark", type: "string", required: false, desc: "Datasource remark (max 200 characters)" },
993
- { name: "sharedConfig", type: "boolean", required: true, desc: "Whether to share configuration across environments: true=all environments share the same connection config (envJsonList only needs 1 element) / false=each environment has independent config (envJsonList needs 2 elements)" },
994
- { name: "envJsonList", type: "string", required: true, desc: "Environment config JSON array string. JSON key must be exactly the same as requiredFields key, format refers to envJsonExampleObject returned by integration_list_datasource_components" },
995
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute, defaults to false if not passed" }
996
- ],
997
- risk: "write",
998
- execute: async (ctx) => {
999
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1000
- const result = await callMcpTool(mcpUrl, "integration_add_datasource", {
1001
- spaceCode: ctx.str("spaceCode"),
1002
- componentName: ctx.str("componentName"),
1003
- dataSourceName: ctx.str("dataSourceName"),
1004
- dataSourceRemark: ctx.str("dataSourceRemark"),
1005
- sharedConfig: ctx.bool("sharedConfig"),
1006
- envJsonList: ctx.str("envJsonList"),
1007
- confirmed: ctx.bool("confirmed")
1008
- });
1009
- return parseMcpResult(result);
1010
- }
1011
- };
1012
-
1013
- // src/commands/te-dataops/integration/modify-datasource.ts
1014
- var modifyDatasource = {
1015
- service: "dataops_integration",
1016
- command: "+modify_datasource",
1017
- description: "Modify datasource configuration. Write operation requires two-step confirmation: First call returns operation preview, after confirmation set confirmed=true to execute modification. Supports modifying remark, shared configuration, connection parameters, etc. Only need to pass fields to be modified, unpassed fields remain unchanged. When modifying connection config, envJsonList format is same as integration_add_datasource. Note: Modifying connection parameters may affect running sync solutions",
1018
- flags: [
1019
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1020
- { name: "dataSourceName", type: "string", required: true, desc: "Datasource name" },
1021
- { name: "dataSourceRemark", type: "string", required: false, desc: "New remark (not passed means not modified)" },
1022
- { name: "sharedConfig", type: "boolean", required: false, desc: "Whether to share configuration (not passed means not modified)" },
1023
- { name: "envJsonList", type: "string", required: false, desc: "New environment config JSON array string (not passed means not modified)" },
1024
- { name: "confirmed", type: "boolean", required: false, desc: "Whether confirmed to execute, defaults to false if not passed" }
1025
- ],
1026
- risk: "write",
1027
- execute: async (ctx) => {
1028
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1029
- const result = await callMcpTool(mcpUrl, "integration_modify_datasource", {
1030
- spaceCode: ctx.str("spaceCode"),
1031
- dataSourceName: ctx.str("dataSourceName"),
1032
- dataSourceRemark: ctx.str("dataSourceRemark"),
1033
- sharedConfig: ctx.bool("sharedConfig"),
1034
- envJsonList: ctx.str("envJsonList"),
1035
- confirmed: ctx.bool("confirmed")
1036
- });
1037
- return parseMcpResult(result);
1038
- }
1039
- };
1040
-
1041
- // src/commands/te-dataops/integration/validate-sql.ts
1042
- var validateSql = {
1043
- service: "dataops_integration",
1044
- command: "+validate_sql",
1045
- description: "Validate SQL syntax and semantics, only supports DDL (CREATE/DROP/ALTER), does not execute SQL. Return fields: valid (whether passed), message (validation result description). Difference from ide_execute_sql: This tool only validates without execution, and only supports DDL statements. Recommend calling this tool to validate before calling integration_execute_sql, to avoid executing incorrect SQL that damages database structure. Note: Default environment is PROD",
1046
- flags: [
1047
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1048
- { name: "env", type: "string", required: false, desc: "Environment: PROD (production, default), DEV (development)" },
1049
- { name: "datasourceId", type: "string", required: true, desc: "Datasource ID (can be obtained through integration_list_space_datasources)" },
1050
- { name: "database", type: "string", required: true, desc: "Database name (can be obtained through integration_list_datasource_databases)" },
1051
- { name: "sql", type: "string", required: true, desc: "SQL statement to validate, only supports DDL (CREATE/DROP/ALTER)" },
1052
- { name: "expectedOperation", type: "string", required: false, desc: "Expected SQL operation type: CREATE_TABLE, DROP_TABLE, ALTER_TABLE" }
1053
- ],
1054
- risk: "read",
1055
- execute: async (ctx) => {
1056
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1057
- const result = await callMcpTool(mcpUrl, "integration_validate_sql", {
1058
- spaceCode: ctx.str("spaceCode"),
1059
- env: ctx.str("env"),
1060
- datasourceId: ctx.str("datasourceId"),
1061
- database: ctx.str("database"),
1062
- sql: ctx.str("sql"),
1063
- expectedOperation: ctx.str("expectedOperation")
1064
- });
1065
- return parseMcpResult(result);
1066
- }
1067
- };
1068
-
1069
- // src/commands/te-dataops/integration/execute-sql.ts
1070
- var executeSql = {
1071
- service: "dataops_integration",
1072
- command: "+integration_execute_sql",
1073
- description: "Execute DDL SQL on datasource (only supports CREATE/DROP/ALTER). Write operation requires two-step confirmation: First call returns operation preview (including SQL content), after confirmation set confirmed=true to execute. DDL operations will directly modify database structure, please confirm SQL correctness. Recommend calling integration_validate_sql to validate SQL syntax before calling this tool to execute. Supports createDualEnv=true to execute in both DEV and PROD environments simultaneously. Note: Default environment is PROD, DDL operations cannot be rolled back",
1074
- flags: [
1075
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1076
- { name: "env", type: "string", required: false, desc: "Environment: PROD(production, default), DEV(development)" },
1077
- { name: "createDualEnv", type: "boolean", required: false, desc: "Whether to sync execute in both environments: true/false, default false" },
1078
- { name: "datasourceId", type: "string", required: true, desc: "Datasource ID (obtainable via integration_list_space_datasources)" },
1079
- { name: "database", type: "string", required: true, desc: "Database name (obtainable via integration_list_datasource_databases)" },
1080
- { name: "sql", type: "string", required: true, desc: "DDL SQL to execute (only supports CREATE/DROP/ALTER)" },
1081
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute. First call omit or pass false for preview, then pass true to execute" }
1082
- ],
1083
- risk: "write",
1084
- execute: async (ctx) => {
1085
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1086
- const result = await callMcpTool(mcpUrl, "integration_execute_sql", {
1087
- spaceCode: ctx.str("spaceCode"),
1088
- env: ctx.str("env"),
1089
- createDualEnv: ctx.bool("createDualEnv"),
1090
- datasourceId: ctx.str("datasourceId"),
1091
- database: ctx.str("database"),
1092
- sql: ctx.str("sql"),
1093
- confirmed: ctx.bool("confirmed")
1094
- });
1095
- return parseMcpResult(result);
1096
- }
1097
- };
1098
-
1099
- // src/commands/te-dataops/integration/list-sync-solutions.ts
1100
- var listSyncSolutions = {
1101
- service: "dataops_integration",
1102
- command: "+list_sync_solutions",
1103
- description: "List all sync solutions under a space. Returns: syncId (sync solution ID, for subsequent Tool calls), syncName (name), srcComponent/sinkComponent (source/target components), srcDatasourceId/sinkDatasourceId (source/target datasource IDs), lastExecStatus (last execution status: WAITING/RUNNING/SUCCESS/FAIL/STOP), owner (owner). This is the entry point for sync solution management, after getting syncId can call integration_get_sync_detail to view details, integration_exec_sync_solution to execute sync",
1104
- flags: [
1105
- { name: "spaceCode", type: "string", required: true, desc: "Space code" }
1106
- ],
1107
- risk: "read",
1108
- execute: async (ctx) => {
1109
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1110
- const result = await callMcpTool(mcpUrl, "integration_list_sync_solutions", {
1111
- spaceCode: ctx.str("spaceCode")
1112
- });
1113
- return parseMcpResult(result);
1114
- }
1115
- };
1116
-
1117
- // src/commands/te-dataops/integration/get-sync-detail.ts
1118
- var getSyncDetail = {
1119
- service: "dataops_integration",
1120
- command: "+get_sync_detail",
1121
- description: "Get sync solution details, including source/target configuration, field mappings, channel configuration. Returns: syncName (name), srcComponent/sinkComponent (components), sourceConfig/sinkConfig (configurations), fieldsMapping (field mappings), channelConfig (channel configuration). Requires syncId (can be obtained via integration_list_sync_solutions). Optional withParams=true to also return parameter information. Suitable for viewing complete sync solution configuration, confirming configuration is correct before execution",
1122
- flags: [
1123
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1124
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1125
- { name: "withParams", type: "boolean", required: false, desc: "Whether to also return parameter information" }
1126
- ],
1127
- risk: "read",
1128
- execute: async (ctx) => {
1129
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1130
- const result = await callMcpTool(mcpUrl, "integration_get_sync_detail", {
1131
- spaceCode: ctx.str("spaceCode"),
1132
- syncId: ctx.str("syncId"),
1133
- withParams: ctx.bool("withParams")
1134
- });
1135
- return parseMcpResult(result);
1136
- }
1137
- };
1138
-
1139
- // src/commands/te-dataops/integration/list-sync-exec-histories.ts
1140
- var listSyncExecHistories = {
1141
- service: "dataops_integration",
1142
- command: "+list_sync_exec_histories",
1143
- description: "Query execution history records of sync solutions, in reverse chronological order of execution time. Returns: taskId (task ID), execType (execution type), status (execution status), startTime/endTime (start/end time), duration (elapsed time). Can filter by execution type: SCHEDULE (scheduled), MANUAL (manual execution), DEBUG (debug). After getting taskId, can call integration_get_sync_exec_info to view execution details, or integration_get_sync_exec_log to view execution logs",
1144
- flags: [
1145
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1146
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1147
- { name: "execType", type: "string", required: false, desc: "Execution type: SCHEDULE (scheduled), MANUAL (manual execution), DEBUG (debug), if not provided query all" },
1148
- { name: "limit", type: "number", required: false, desc: "Number of results to return, defaults to 20, max 10000" }
1149
- ],
1150
- risk: "read",
1151
- execute: async (ctx) => {
1152
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1153
- const result = await callMcpTool(mcpUrl, "integration_list_sync_exec_histories", {
1154
- spaceCode: ctx.str("spaceCode"),
1155
- syncId: ctx.str("syncId"),
1156
- execType: ctx.str("execType"),
1157
- limit: ctx.num("limit")
1158
- });
1159
- return parseMcpResult(result);
1160
- }
1161
- };
1162
-
1163
- // src/commands/te-dataops/integration/get-sync-exec-info.ts
1164
- var getSyncExecInfo = {
1165
- service: "dataops_integration",
1166
- command: "+get_sync_exec_info",
1167
- description: "Get detailed information of a single sync solution execution, including execution status, read/write row counts, elapsed time and other metrics. Returns: status (execution status), readCount/writeCount (read/write row counts), startTime/endTime (start/end time), duration (elapsed time). Requires syncId and taskId (can be obtained via integration_list_sync_exec_histories). Suitable for understanding data volume and performance of sync execution",
1168
- flags: [
1169
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1170
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1171
- { name: "taskId", type: "string", required: true, desc: "Execution task ID" }
1172
- ],
1173
- risk: "read",
1174
- execute: async (ctx) => {
1175
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1176
- const result = await callMcpTool(mcpUrl, "integration_get_sync_exec_info", {
1177
- spaceCode: ctx.str("spaceCode"),
1178
- syncId: ctx.str("syncId"),
1179
- taskId: ctx.str("taskId")
1180
- });
1181
- return parseMcpResult(result);
1182
- }
1183
- };
1184
-
1185
- // src/commands/te-dataops/integration/exec-sync-solution.ts
1186
- var execSyncSolution = {
1187
- service: "dataops_integration",
1188
- command: "+exec_sync_solution",
1189
- description: "Manually execute a sync solution. Write operation requires two-step confirmation: first call returns operation preview, confirm by setting confirmed=true to execute. Suggest confirming solution configuration is correct via integration_get_sync_detail before execution. Can pass execution parameters via execParams (e.g., date range, parameter list can be obtained via integration_get_sync_params). Can view execution records via integration_list_sync_exec_histories after execution",
1190
- flags: [
1191
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1192
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1193
- { name: "execParams", type: "string", required: false, desc: "Execution parameters JSON string" },
1194
- { name: "comment", type: "string", required: false, desc: "Execution remark" },
1195
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
1196
- ],
1197
- risk: "write",
1198
- execute: async (ctx) => {
1199
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1200
- const result = await callMcpTool(mcpUrl, "integration_exec_sync_solution", {
1201
- spaceCode: ctx.str("spaceCode"),
1202
- syncId: ctx.str("syncId"),
1203
- execParams: ctx.str("execParams"),
1204
- comment: ctx.str("comment"),
1205
- confirmed: ctx.bool("confirmed")
1206
- });
1207
- return parseMcpResult(result);
1208
- }
1209
- };
1210
-
1211
- // src/commands/te-dataops/integration/add-sync-solution.ts
1212
- var addSyncSolution = {
1213
- service: "dataops_integration",
1214
- command: "+add_sync_solution",
1215
- description: "Create a sync solution. Write operation requires two-step confirmation: first call returns operation preview, confirm by setting confirmed=true to execute creation. Before creation, suggest viewing available source/sink datasources via integration_list_sync_datasources. Need to specify source and sink component names, datasource IDs and configurations. Returns syncId after successful creation, which can be used for subsequent operations (view details, execute sync, etc.)",
1216
- flags: [
1217
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1218
- { name: "syncName", type: "string", required: true, desc: "Sync solution name" },
1219
- { name: "srcComponent", type: "string", required: true, desc: "Source component name (e.g., MySQL, OSS, Hive)" },
1220
- { name: "srcDatasourceId", type: "string", required: true, desc: "Source datasource ID" },
1221
- { name: "sinkComponent", type: "string", required: true, desc: "Sink component name (e.g., ClickHouse, StarRocks, MySQL)" },
1222
- { name: "sinkDatasourceId", type: "string", required: true, desc: "Sink datasource ID" },
1223
- { name: "sourceConfig", type: "string", required: true, desc: "Source configuration JSON string" },
1224
- { name: "sinkConfig", type: "string", required: true, desc: "Sink configuration JSON string" },
1225
- { name: "channelConfig", type: "string", required: false, desc: "Channel configuration JSON string" },
1226
- { name: "fieldsMapping", type: "string", required: false, desc: "Field mapping JSON string" },
1227
- { name: "remark", type: "string", required: false, desc: "Remark" },
1228
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
1229
- ],
1230
- risk: "write",
1231
- execute: async (ctx) => {
1232
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1233
- const result = await callMcpTool(mcpUrl, "integration_add_sync_solution", {
1234
- spaceCode: ctx.str("spaceCode"),
1235
- syncName: ctx.str("syncName"),
1236
- srcComponent: ctx.str("srcComponent"),
1237
- srcDatasourceId: ctx.str("srcDatasourceId"),
1238
- sinkComponent: ctx.str("sinkComponent"),
1239
- sinkDatasourceId: ctx.str("sinkDatasourceId"),
1240
- sourceConfig: ctx.str("sourceConfig"),
1241
- sinkConfig: ctx.str("sinkConfig"),
1242
- channelConfig: ctx.str("channelConfig"),
1243
- fieldsMapping: ctx.str("fieldsMapping"),
1244
- remark: ctx.str("remark"),
1245
- confirmed: ctx.bool("confirmed")
1246
- });
1247
- return parseMcpResult(result);
1248
- }
1249
- };
1250
-
1251
- // src/commands/te-dataops/integration/save-sync-solution.ts
1252
- var saveSyncSolution = {
1253
- service: "dataops_integration",
1254
- command: "+save_sync_solution",
1255
- description: "Update sync solution configuration. Write operation requires two-step confirmation: first call returns operation preview, confirm by setting confirmed=true to execute update. Requires syncId (can be obtained via integration_list_sync_solutions). Supports modifying solution name, source/sink configurations, channel configuration, field mapping, remark, etc. Only pass in fields that need modification, unpassed fields remain unchanged. Suggest viewing current configuration via integration_get_sync_detail before modification",
1256
- flags: [
1257
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1258
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1259
- { name: "syncName", type: "string", required: false, desc: "New solution name (will not modify if not provided)" },
1260
- { name: "sourceConfig", type: "string", required: false, desc: "New source configuration JSON (will not modify if not provided)" },
1261
- { name: "sinkConfig", type: "string", required: false, desc: "New sink configuration JSON (will not modify if not provided)" },
1262
- { name: "channelConfig", type: "string", required: false, desc: "New channel configuration JSON (will not modify if not provided)" },
1263
- { name: "fieldsMapping", type: "string", required: false, desc: "New field mapping JSON (will not modify if not provided)" },
1264
- { name: "remark", type: "string", required: false, desc: "New remark (will not modify if not provided)" },
1265
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
1266
- ],
1267
- risk: "write",
1268
- execute: async (ctx) => {
1269
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1270
- const result = await callMcpTool(mcpUrl, "integration_save_sync_solution", {
1271
- spaceCode: ctx.str("spaceCode"),
1272
- syncId: ctx.str("syncId"),
1273
- syncName: ctx.str("syncName"),
1274
- sourceConfig: ctx.str("sourceConfig"),
1275
- sinkConfig: ctx.str("sinkConfig"),
1276
- channelConfig: ctx.str("channelConfig"),
1277
- fieldsMapping: ctx.str("fieldsMapping"),
1278
- remark: ctx.str("remark"),
1279
- confirmed: ctx.bool("confirmed")
1280
- });
1281
- return parseMcpResult(result);
1282
- }
1283
- };
1284
-
1285
- // src/commands/te-dataops/integration/stop-sync-solution.ts
1286
- var stopSyncSolution = {
1287
- service: "dataops_integration",
1288
- command: "+stop_sync_solution",
1289
- description: "Stop a running sync solution. Write operation requires two-step confirmation: first call returns operation preview (with impact warning), confirm by setting confirmed=true to execute stop. Requires syncId and taskId (taskId can be obtained via integration_list_sync_exec_histories for currently running tasks). Note: After stopping, data may be in an incomplete state, need to re-execute complete sync to ensure data consistency",
1290
- flags: [
1291
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1292
- { name: "syncId", type: "string", required: true, desc: "Sync solution ID" },
1293
- { name: "taskId", type: "string", required: true, desc: "Execution task ID" },
1294
- { name: "confirmed", type: "boolean", required: false, desc: "Confirmed to execute, defaults to false if not provided" }
1295
- ],
1296
- risk: "write",
1297
- execute: async (ctx) => {
1298
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1299
- const result = await callMcpTool(mcpUrl, "integration_stop_sync_solution", {
1300
- spaceCode: ctx.str("spaceCode"),
1301
- syncId: ctx.str("syncId"),
1302
- taskId: ctx.str("taskId"),
1303
- confirmed: ctx.bool("confirmed")
1304
- });
1305
- return parseMcpResult(result);
1306
- }
1307
- };
1308
-
1309
- // src/commands/te-dataops/integration/index.ts
1310
- var commands3 = [
1311
- listDatasourceComponents,
1312
- listSpaceDatasources,
1313
- testDatasourceConnect,
1314
- listDatasourceTables,
1315
- getTableStructure,
1316
- listSyncDatasources,
1317
- listDatasourceDatabases,
1318
- onlineDatasource,
1319
- addDatasource,
1320
- modifyDatasource,
1321
- validateSql,
1322
- executeSql,
1323
- listSyncSolutions,
1324
- getSyncDetail,
1325
- listSyncExecHistories,
1326
- getSyncExecInfo,
1327
- execSyncSolution,
1328
- addSyncSolution,
1329
- saveSyncSolution,
1330
- stopSyncSolution
1331
- ];
1332
- var integration_default = commands3;
1333
-
1334
- // src/commands/te-dataops/repo/list-catalogs.ts
1335
- var listCatalogs = {
1336
- service: "dataops_repo",
1337
- command: "+list_catalogs",
1338
- description: "List catalogs under specified repository, returns catalog names and permission information. Applicable for browsing repository structure. Difference from ide_list_catalogs: This tool is repository management oriented, ide_list_catalogs is query IDE operation oriented",
1339
- flags: [
1340
- { name: "repoCode", type: "string", required: true, desc: "Repository code, like te_etl" }
1341
- ],
1342
- risk: "read",
1343
- execute: async (ctx) => {
1344
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1345
- const result = await callMcpTool(mcpUrl, "repo_list_catalogs", {
1346
- repoCode: ctx.str("repoCode")
1347
- });
1348
- return parseMcpResult(result);
1349
- }
1350
- };
1351
-
1352
- // src/commands/te-dataops/repo/list-schemas.ts
1353
- var listSchemas = {
1354
- service: "dataops_repo",
1355
- command: "+list_schemas",
1356
- description: "List schema/database list under specified catalog, returns schema names",
1357
- flags: [
1358
- { name: "repoCode", type: "string", required: true, desc: "Repository code" },
1359
- { name: "catalogName", type: "string", required: true, desc: "Catalog name" }
1360
- ],
1361
- risk: "read",
1362
- execute: async (ctx) => {
1363
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1364
- const result = await callMcpTool(mcpUrl, "repo_list_schemas", {
1365
- repoCode: ctx.str("repoCode"),
1366
- catalogName: ctx.str("catalogName")
1367
- });
1368
- return parseMcpResult(result);
1369
- }
1370
- };
1371
-
1372
- // src/commands/te-dataops/repo/list-repos.ts
1373
- var listRepos = {
1374
- service: "dataops_repo",
1375
- command: "+list_repos",
1376
- description: "List repositories visible to current user. Returns: repoCode (repository code), repoName (repository name), repoType (repository type). Applicable for scenarios requiring data warehouse connection selection",
1377
- flags: [],
1378
- risk: "read",
1379
- execute: async (ctx) => {
1380
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1381
- const result = await callMcpTool(mcpUrl, "repo_list_repos", {});
1382
- return parseMcpResult(result);
1383
- }
1384
- };
1385
-
1386
- // src/commands/te-dataops/repo/list-space-members.ts
1387
- var listSpaceMembers = {
1388
- service: "dataops_repo",
1389
- command: "+list_space_members",
1390
- description: "List space members. Returns: member names, roles, join time. Applicable for viewing space members and permission allocation",
1391
- flags: [
1392
- { name: "spaceCode", type: "string", required: true, desc: "Space code" }
1393
- ],
1394
- risk: "read",
1395
- execute: async (ctx) => {
1396
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1397
- const result = await callMcpTool(mcpUrl, "repo_list_space_members", {
1398
- spaceCode: ctx.str("spaceCode")
1399
- });
1400
- return parseMcpResult(result);
1401
- }
1402
- };
1403
-
1404
- // src/commands/te-dataops/repo/preview-param-expression.ts
1405
- var previewParamExpression = {
1406
- service: "dataops_repo",
1407
- command: "+preview_param_expression",
1408
- description: "Preview calculation result of parameter expression, returns actual value after expression parsing. Applicable for verifying parameter expression correctness. Expression format example: ${yyyyMMdd}",
1409
- flags: [
1410
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1411
- { name: "expression", type: "string", required: true, desc: "Parameter expression, e.g., ${yyyyMMdd}" },
1412
- { name: "baseDate", type: "string", required: false, desc: "Base date, format yyyy-MM-dd, defaults to current day if not provided" }
1413
- ],
1414
- risk: "read",
1415
- execute: async (ctx) => {
1416
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1417
- const result = await callMcpTool(mcpUrl, "repo_preview_param_expression", {
1418
- spaceCode: ctx.str("spaceCode"),
1419
- expression: ctx.str("expression"),
1420
- baseDate: ctx.str("baseDate")
1421
- });
1422
- return parseMcpResult(result);
1423
- }
1424
- };
1425
-
1426
- // src/commands/te-dataops/repo/list-param-used-flows.ts
1427
- var listParamUsedFlows = {
1428
- service: "dataops_repo",
1429
- command: "+list_param_used_flows",
1430
- description: "Query which workflows reference specified space parameter, returns list of workflows referencing that parameter. Applicable for impact assessment before parameter changes",
1431
- flags: [
1432
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1433
- { name: "paramKey", type: "string", required: true, desc: "Parameter key name" }
1434
- ],
1435
- risk: "read",
1436
- execute: async (ctx) => {
1437
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1438
- const result = await callMcpTool(mcpUrl, "repo_list_param_used_flows", {
1439
- spaceCode: ctx.str("spaceCode"),
1440
- paramKey: ctx.str("paramKey")
1441
- });
1442
- return parseMcpResult(result);
1443
- }
1444
- };
1445
-
1446
- // src/commands/te-dataops/repo/list-support-params.ts
1447
- var listSupportParams = {
1448
- service: "dataops_repo",
1449
- command: "+list_support_params",
1450
- description: "List all parameters supported by space (built-in + custom), returns unified parameter list. Returns: paramKey (parameter key), paramValue (parameter value), remark (description), origin (source: BUILTIN=built-in/CUSTOM=custom). Built-in parameter examples: ws_run_date (run date), ws_run_date_offset_1 (previous day date), etc. Built-in parameters cannot be modified. Applicable for viewing available parameters when writing scripts or tasks",
1451
- flags: [
1452
- { name: "spaceCode", type: "string", required: true, desc: "Space code" }
1453
- ],
1454
- risk: "read",
1455
- execute: async (ctx) => {
1456
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1457
- const result = await callMcpTool(mcpUrl, "repo_list_support_params", {
1458
- spaceCode: ctx.str("spaceCode")
1459
- });
1460
- return parseMcpResult(result);
1461
- }
1462
- };
1463
-
1464
- // src/commands/te-dataops/repo/list-spaces.ts
1465
- var listSpaces = {
1466
- service: "dataops_repo",
1467
- command: "+list_spaces",
1468
- description: "List spaces current user has permission to access. Returns: spaceCode (space code), spaceName (space name), description (description). This is the entry point for the entire MCP toolchain, spaceCode is a required parameter for most other tools. If user only has one space, it can be automatically selected",
1469
- flags: [],
1470
- risk: "read",
1471
- execute: async (ctx) => {
1472
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1473
- const result = await callMcpTool(mcpUrl, "repo_list_spaces", {});
1474
- return parseMcpResult(result);
1475
- }
1476
- };
1477
-
1478
- // src/commands/te-dataops/repo/index.ts
1479
- var commands4 = [
1480
- listCatalogs,
1481
- listSchemas,
1482
- listRepos,
1483
- listSpaceMembers,
1484
- previewParamExpression,
1485
- listParamUsedFlows,
1486
- listSupportParams,
1487
- listSpaces
1488
- ];
1489
- var repo_default = commands4;
1490
-
1491
- // src/commands/te-dataops/ide/cancel-query.ts
1492
- var cancelQuery = {
1493
- service: "dataops_ide",
1494
- command: "+cancel_query",
1495
- description: "Cancels a running async SQL query. Write operation requires two-step confirmation. Query results will be unavailable after cancellation",
1496
- flags: [
1497
- { name: "requestId", type: "string", required: true, desc: "Request ID returned after executing SQL" },
1498
- { name: "confirmed", type: "boolean", required: true, desc: "Whether confirmed to execute. First call: omit or pass false for preview, then pass true to execute" }
1499
- ],
1500
- risk: "write",
1501
- execute: async (ctx) => {
1502
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1503
- const result = await callMcpTool(mcpUrl, "ide_cancel_query", {
1504
- requestId: ctx.str("requestId"),
1505
- confirmed: ctx.bool("confirmed")
1506
- });
1507
- return parseMcpResult(result);
1508
- }
1509
- };
1510
-
1511
- // src/commands/te-dataops/ide/get-query-progress.ts
1512
- var getQueryProgress = {
1513
- service: "dataops_ide",
1514
- command: "+get_query_progress",
1515
- description: "Queries async SQL execution progress. Returns: state(QUEUED/RUNNING/FINISHED/FAILED/CANCELLED), progress(percentage), message. Recommend 2-5 second polling interval. Call ide_get_query_result when state=FINISHED",
1516
- flags: [
1517
- { name: "requestId", type: "string", required: true, desc: "Request ID returned after executing SQL" }
1518
- ],
1519
- risk: "read",
1520
- execute: async (ctx) => {
1521
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1522
- const result = await callMcpTool(mcpUrl, "ide_get_query_progress", {
1523
- requestId: ctx.str("requestId")
1524
- });
1525
- return parseMcpResult(result);
1526
- }
1527
- };
1528
-
1529
- // src/commands/te-dataops/ide/execute-sql.ts
1530
- var executeSql2 = {
1531
- service: "dataops_ide",
1532
- command: "+ide_execute_sql",
1533
- description: "Asynchronously executes SQL queries. Write operations require two-step confirmation. Returns: requestId. Async execution flow: 1) Call this tool to get requestId, 2) Poll ide_get_query_progress (recommend 2-5 second interval), 3) Call ide_get_query_result to get results when state=FINISHED. Only supports DQL/DML. For DDL, use integration_execute_sql. Difference from integration_execute_sql: This tool executes asynchronously in the data warehouse engine and supports SELECT/DML; integration executes DDL in external data sources",
1534
- flags: [
1535
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1536
- { name: "repoCode", type: "string", required: true, desc: "Repository code" },
1537
- { name: "sql", type: "string", required: true, desc: "SQL statement" },
1538
- { name: "engineType", type: "string", required: false, default: "TASK_ENGINE_TRINO", desc: "SQL execution engine: TASK_ENGINE_TRINO(default, suitable for interactive queries), TASK_ENGINE_STARROCKS(suitable for real-time analytics and high-concurrency queries)" },
1539
- { name: "confirmed", type: "boolean", required: true, desc: "Whether confirmed to execute. First call: omit or pass false for preview, then pass true to execute" }
1540
- ],
1541
- risk: "write",
1542
- execute: async (ctx) => {
1543
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1544
- const result = await callMcpTool(mcpUrl, "ide_execute_sql", {
1545
- spaceCode: ctx.str("spaceCode"),
1546
- repoCode: ctx.str("repoCode"),
1547
- sql: ctx.str("sql"),
1548
- engineType: ctx.str("engineType"),
1549
- confirmed: ctx.bool("confirmed")
1550
- });
1551
- return parseMcpResult(result);
1552
- }
1553
- };
1554
-
1555
- // src/commands/te-dataops/ide/list-catalogs.ts
1556
- var listCatalogs2 = {
1557
- service: "dataops_ide",
1558
- command: "+ide_list_catalogs",
1559
- description: "Lists all catalogs and their schemas in the repository. Returns: catalogs(list containing catalogName and schemas sub-list). Requires repoCode (obtainable via ide_list_repos)",
1560
- flags: [
1561
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1562
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1563
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" }
1564
- ],
1565
- risk: "read",
1566
- execute: async (ctx) => {
1567
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1568
- const result = await callMcpTool(mcpUrl, "ide_list_catalogs", {
1569
- spaceCode: ctx.str("spaceCode"),
1570
- connType: ctx.str("connType"),
1571
- repoCode: ctx.str("repoCode")
1572
- });
1573
- return parseMcpResult(result);
1574
- }
1575
- };
1576
-
1577
- // src/commands/te-dataops/ide/get-schema-info.ts
1578
- var getSchemaInfo = {
1579
- service: "dataops_ide",
1580
- command: "+get_schema_info",
1581
- description: "Gets schema statistics, including table count and view count. Returns: tableCount, viewCount",
1582
- flags: [
1583
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1584
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1585
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1586
- { name: "catalog", type: "string", required: true, desc: "Catalog name" },
1587
- { name: "schema", type: "string", required: true, desc: "Schema name" }
1588
- ],
1589
- risk: "read",
1590
- execute: async (ctx) => {
1591
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1592
- const result = await callMcpTool(mcpUrl, "ide_get_schema_info", {
1593
- spaceCode: ctx.str("spaceCode"),
1594
- connType: ctx.str("connType"),
1595
- repoCode: ctx.str("repoCode"),
1596
- catalog: ctx.str("catalog"),
1597
- schema: ctx.str("schema")
1598
- });
1599
- return parseMcpResult(result);
1600
- }
1601
- };
1602
-
1603
- // src/commands/te-dataops/ide/search-columns.ts
1604
- var searchColumns = {
1605
- service: "dataops_ide",
1606
- command: "+search_columns",
1607
- description: "Fuzzy search column names across tables. Returns: columnName, columnType, tableName, catalogName, schemaName. Useful for finding which tables contain a specific field",
1608
- flags: [
1609
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1610
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1611
- { name: "searchKey", type: "string", required: true, desc: "Column name search keyword" },
1612
- { name: "tables", type: "string", required: true, desc: "List of tables to search (JSON array format, each item contains catalog, schema, tableName fields)" },
1613
- { name: "engineType", type: "string", required: false, default: "TASK_ENGINE_TRINO", desc: "SQL execution engine: TASK_ENGINE_TRINO(default), TASK_ENGINE_STARROCKS" },
1614
- { name: "pageNum", type: "number", required: false, default: 1, desc: "Page number, default 1" },
1615
- { name: "pageSize", type: "number", required: false, default: 100, desc: "Page size, default 100, max 10000" }
1616
- ],
1617
- risk: "read",
1618
- execute: async (ctx) => {
1619
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1620
- const result = await callMcpTool(mcpUrl, "ide_search_columns", {
1621
- spaceCode: ctx.str("spaceCode"),
1622
- repoCode: ctx.str("repoCode"),
1623
- searchKey: ctx.str("searchKey"),
1624
- tables: ctx.str("tables"),
1625
- engineType: ctx.str("engineType"),
1626
- pageNum: ctx.num("pageNum"),
1627
- pageSize: ctx.num("pageSize")
1628
- });
1629
- return parseMcpResult(result);
1630
- }
1631
- };
1632
-
1633
- // src/commands/te-dataops/ide/get-table-detail.ts
1634
- var getTableDetail2 = {
1635
- service: "dataops_ide",
1636
- command: "+ide_get_table_detail",
1637
- description: "Gets real-time table metadata from the data warehouse engine, including column definitions, DDL, partition information. Returns: columns(name/type/comment), ddl, partitions, rowCount, dataSize. Difference from datatable_get_table_detail: This tool directly queries real-time metadata from the data warehouse engine, datatable queries dataops platform registered information(including data lineage). Difference from integration_get_table_structure: integration queries external data source metadata",
1638
- flags: [
1639
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1640
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1641
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1642
- { name: "catalog", type: "string", required: true, desc: "Catalog name" },
1643
- { name: "schema", type: "string", required: true, desc: "Schema name" },
1644
- { name: "tableName", type: "string", required: true, desc: "Table name" },
1645
- { name: "engineType", type: "string", required: false, default: "TASK_ENGINE_TRINO", desc: "SQL execution engine: TASK_ENGINE_TRINO(default), TASK_ENGINE_STARROCKS" },
1646
- { name: "isView", type: "boolean", required: true, desc: "Whether it is a view, auto-detect if not provided" }
1647
- ],
1648
- risk: "read",
1649
- execute: async (ctx) => {
1650
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1651
- const result = await callMcpTool(mcpUrl, "ide_get_table_detail", {
1652
- spaceCode: ctx.str("spaceCode"),
1653
- connType: ctx.str("connType"),
1654
- repoCode: ctx.str("repoCode"),
1655
- catalog: ctx.str("catalog"),
1656
- schema: ctx.str("schema"),
1657
- tableName: ctx.str("tableName"),
1658
- engineType: ctx.str("engineType"),
1659
- isView: ctx.bool("isView")
1660
- });
1661
- return parseMcpResult(result);
1662
- }
1663
- };
1664
-
1665
- // src/commands/te-dataops/ide/generate-sql.ts
1666
- var generateSql = {
1667
- service: "dataops_ide",
1668
- command: "+generate_sql",
1669
- description: "Generates SELECT SQL statement based on table name and column names. Returns: Executable SELECT SQL string. Related tools: ide_execute_sql (execute the generated SQL)",
1670
- flags: [
1671
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1672
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1673
- { name: "catalog", type: "string", required: true, desc: "Catalog name" },
1674
- { name: "schema", type: "string", required: true, desc: "Schema name" },
1675
- { name: "tableName", type: "string", required: true, desc: "Table name" },
1676
- { name: "engineType", type: "string", required: false, default: "TASK_ENGINE_TRINO", desc: "SQL execution engine: TASK_ENGINE_TRINO(default), TASK_ENGINE_STARROCKS" },
1677
- { name: "selectColumns", type: "string", required: true, desc: "List of column names to query, queries all columns if not provided" }
1678
- ],
1679
- risk: "read",
1680
- execute: async (ctx) => {
1681
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1682
- const result = await callMcpTool(mcpUrl, "ide_generate_sql", {
1683
- spaceCode: ctx.str("spaceCode"),
1684
- repoCode: ctx.str("repoCode"),
1685
- catalog: ctx.str("catalog"),
1686
- schema: ctx.str("schema"),
1687
- tableName: ctx.str("tableName"),
1688
- engineType: ctx.str("engineType"),
1689
- selectColumns: ctx.str("selectColumns")
1690
- });
1691
- return parseMcpResult(result);
1692
- }
1693
- };
1694
-
1695
- // src/commands/te-dataops/ide/search-tables.ts
1696
- var searchTables = {
1697
- service: "dataops_ide",
1698
- command: "+search_tables",
1699
- description: "Fuzzy search tables by keyword across catalog/schema. Returns: tableName, catalogName, schemaName, tableType. Difference from datatable_search_tables: This tool queries real-time metadata from the data warehouse engine, datatable queries dataops platform registered metadata(including business descriptions)",
1700
- flags: [
1701
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1702
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1703
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1704
- { name: "searchKey", type: "string", required: true, desc: "Search keyword" },
1705
- { name: "size", type: "number", required: true, desc: "Maximum number of results to return" }
1706
- ],
1707
- risk: "read",
1708
- execute: async (ctx) => {
1709
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1710
- const result = await callMcpTool(mcpUrl, "ide_search_tables", {
1711
- spaceCode: ctx.str("spaceCode"),
1712
- connType: ctx.str("connType"),
1713
- repoCode: ctx.str("repoCode"),
1714
- searchKey: ctx.str("searchKey"),
1715
- size: ctx.num("size")
1716
- });
1717
- return parseMcpResult(result);
1718
- }
1719
- };
1720
-
1721
- // src/commands/te-dataops/ide/list-repos.ts
1722
- var listRepos2 = {
1723
- service: "dataops_ide",
1724
- command: "+ide_list_repos",
1725
- description: "Lists available data warehouses in the space. Returns: repoCode(repository code), repoName(repository name), connType(connection type: SPACE/ETL/APP). SPACE for daily query development, ETL for data processing, APP for external services",
1726
- flags: [
1727
- { name: "spaceCode", type: "string", required: true, desc: "Space code" }
1728
- ],
1729
- risk: "read",
1730
- execute: async (ctx) => {
1731
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1732
- const result = await callMcpTool(mcpUrl, "ide_list_repos", {
1733
- spaceCode: ctx.str("spaceCode")
1734
- });
1735
- return parseMcpResult(result);
1736
- }
1737
- };
1738
-
1739
- // src/commands/te-dataops/ide/list-tables.ts
1740
- var listTables = {
1741
- service: "dataops_ide",
1742
- command: "+list_tables",
1743
- description: "Paginated list of tables/views under a schema. Returns: tableName, tableType. Defaults to physical tables, set isView=true to return views",
1744
- flags: [
1745
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1746
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1747
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1748
- { name: "catalog", type: "string", required: true, desc: "Catalog name" },
1749
- { name: "schema", type: "string", required: true, desc: "Schema name" },
1750
- { name: "isView", type: "boolean", required: false, desc: "Whether to query views, default false returns physical tables, set true to return views" },
1751
- { name: "pageNum", type: "number", required: false, default: 1, desc: "Page number, default 1" },
1752
- { name: "pageSize", type: "number", required: false, default: 100, desc: "Page size, default 100, max 10000" }
1753
- ],
1754
- risk: "read",
1755
- execute: async (ctx) => {
1756
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1757
- const result = await callMcpTool(mcpUrl, "ide_list_tables", {
1758
- spaceCode: ctx.str("spaceCode"),
1759
- connType: ctx.str("connType"),
1760
- repoCode: ctx.str("repoCode"),
1761
- catalog: ctx.str("catalog"),
1762
- schema: ctx.str("schema"),
1763
- isView: ctx.bool("isView"),
1764
- pageNum: ctx.num("pageNum"),
1765
- pageSize: ctx.num("pageSize")
1766
- });
1767
- return parseMcpResult(result);
1768
- }
1769
- };
1770
-
1771
- // src/commands/te-dataops/ide/get-query-result.ts
1772
- var getQueryResult = {
1773
- service: "dataops_ide",
1774
- command: "+get_query_result",
1775
- description: "Gets result data details (column names + row data) for a specific query record. Returns: columns(column definitions), rows(data rows). Requires recordId (obtainable via ide_list_query_history). Note: Only queries with SUCCESS status have result data",
1776
- flags: [
1777
- { name: "spaceCode", type: "string", required: true, desc: "Space code" },
1778
- { name: "connType", type: "string", required: false, default: "SPACE", desc: "Connection type: SPACE(data warehouse for daily queries, default), ETL(ETL engine for data processing), APP(app warehouse for external services)" },
1779
- { name: "repoCode", type: "string", required: false, default: "te_etl", desc: "Repository code, defaults to te_etl if not provided" },
1780
- { name: "recordId", type: "number", required: true, desc: "Query record ID (obtainable via ide_list_query_history)" }
1781
- ],
1782
- risk: "read",
1783
- execute: async (ctx) => {
1784
- const mcpUrl = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), ctx.service());
1785
- const result = await callMcpTool(mcpUrl, "ide_get_query_result", {
1786
- spaceCode: ctx.str("spaceCode"),
1787
- connType: ctx.str("connType"),
1788
- repoCode: ctx.str("repoCode"),
1789
- recordId: ctx.num("recordId")
1790
- });
1791
- return parseMcpResult(result);
1792
- }
1793
- };
1794
-
1795
- // src/commands/te-dataops/ide/index.ts
1796
- var commands5 = [
1797
- cancelQuery,
1798
- getQueryProgress,
1799
- executeSql2,
1800
- listCatalogs2,
1801
- getSchemaInfo,
1802
- searchColumns,
1803
- getTableDetail2,
1804
- generateSql,
1805
- searchTables,
1806
- listRepos2,
1807
- listTables,
1808
- getQueryResult
1809
- ];
1810
- var ide_default = commands5;
1811
-
1812
- // src/commands/te-dataops/index.ts
1813
- registerMcpMappings({
1814
- dataops_datatable: { componentName: "dataops", mappingPath: "datatable" },
1815
- dataops_flow: { componentName: "dataops", mappingPath: "flow" },
1816
- dataops_integration: { componentName: "dataops", mappingPath: "integration" },
1817
- dataops_repo: { componentName: "dataops", mappingPath: "repo" },
1818
- dataops_ide: { componentName: "dataops", mappingPath: "ide" }
1819
- });
1820
- var commands6 = [
1821
- ...datatable_default,
1822
- ...flow_default,
1823
- ...integration_default,
1824
- ...repo_default,
1825
- ...ide_default
1826
- ];
1827
- var te_dataops_default = commands6;
1828
- export {
1829
- te_dataops_default as default
1830
- };