@einlogic/mcp-fabric-api 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/server.d.ts.map +1 -1
- package/build/server.js +18 -2
- package/build/server.js.map +1 -1
- package/build/tools/copy-job.d.ts +5 -0
- package/build/tools/copy-job.d.ts.map +1 -0
- package/build/tools/copy-job.js +144 -0
- package/build/tools/copy-job.js.map +1 -0
- package/build/tools/dataflow.d.ts.map +1 -1
- package/build/tools/dataflow.js +35 -0
- package/build/tools/dataflow.js.map +1 -1
- package/build/tools/deployment-pipeline.d.ts +5 -0
- package/build/tools/deployment-pipeline.d.ts.map +1 -0
- package/build/tools/deployment-pipeline.js +170 -0
- package/build/tools/deployment-pipeline.js.map +1 -0
- package/build/tools/external-data-share.d.ts +5 -0
- package/build/tools/external-data-share.d.ts.map +1 -0
- package/build/tools/external-data-share.js +61 -0
- package/build/tools/external-data-share.js.map +1 -0
- package/build/tools/git-integration.d.ts +5 -0
- package/build/tools/git-integration.d.ts.map +1 -0
- package/build/tools/git-integration.js +159 -0
- package/build/tools/git-integration.js.map +1 -0
- package/build/tools/kql-database.d.ts +5 -0
- package/build/tools/kql-database.d.ts.map +1 -0
- package/build/tools/kql-database.js +154 -0
- package/build/tools/kql-database.js.map +1 -0
- package/build/tools/lakehouse.d.ts +2 -1
- package/build/tools/lakehouse.d.ts.map +1 -1
- package/build/tools/lakehouse.js +151 -6
- package/build/tools/lakehouse.js.map +1 -1
- package/build/tools/mirrored-database.d.ts +5 -0
- package/build/tools/mirrored-database.d.ts.map +1 -0
- package/build/tools/mirrored-database.js +199 -0
- package/build/tools/mirrored-database.js.map +1 -0
- package/build/tools/ml-experiment.d.ts +5 -0
- package/build/tools/ml-experiment.d.ts.map +1 -0
- package/build/tools/ml-experiment.js +83 -0
- package/build/tools/ml-experiment.js.map +1 -0
- package/build/tools/ml-model.d.ts +5 -0
- package/build/tools/ml-model.d.ts.map +1 -0
- package/build/tools/ml-model.js +83 -0
- package/build/tools/ml-model.js.map +1 -0
- package/build/tools/pipeline.d.ts.map +1 -1
- package/build/tools/pipeline.js +66 -0
- package/build/tools/pipeline.js.map +1 -1
- package/build/tools/reflex.d.ts.map +1 -1
- package/build/tools/reflex.js +34 -2
- package/build/tools/reflex.js.map +1 -1
- package/build/tools/report.d.ts.map +1 -1
- package/build/tools/report.js +38 -0
- package/build/tools/report.js.map +1 -1
- package/build/tools/semantic-model.d.ts.map +1 -1
- package/build/tools/semantic-model.js +37 -0
- package/build/tools/semantic-model.js.map +1 -1
- package/build/tools/warehouse.d.ts.map +1 -1
- package/build/tools/warehouse.js +66 -0
- package/build/tools/warehouse.js.map +1 -1
- package/package.json +1 -1
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA8BvD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAuCrE"}
|
package/build/server.js
CHANGED
|
@@ -17,13 +17,21 @@ import { registerWarehouseTools } from "./tools/warehouse.js";
|
|
|
17
17
|
import { registerSqlEndpointTools } from "./tools/sql-endpoint.js";
|
|
18
18
|
import { registerVariableLibraryTools } from "./tools/variable-library.js";
|
|
19
19
|
import { registerAuthTools } from "./tools/auth.js";
|
|
20
|
+
import { registerGitIntegrationTools } from "./tools/git-integration.js";
|
|
21
|
+
import { registerDeploymentPipelineTools } from "./tools/deployment-pipeline.js";
|
|
22
|
+
import { registerMirroredDatabaseTools } from "./tools/mirrored-database.js";
|
|
23
|
+
import { registerKqlDatabaseTools } from "./tools/kql-database.js";
|
|
24
|
+
import { registerMlModelTools } from "./tools/ml-model.js";
|
|
25
|
+
import { registerMlExperimentTools } from "./tools/ml-experiment.js";
|
|
26
|
+
import { registerCopyJobTools } from "./tools/copy-job.js";
|
|
27
|
+
import { registerExternalDataShareTools } from "./tools/external-data-share.js";
|
|
20
28
|
import { SqlClient } from "./client/sql-client.js";
|
|
21
29
|
import { KustoClient } from "./client/kusto-client.js";
|
|
22
30
|
import { WorkspaceGuard } from "./core/workspace-guard.js";
|
|
23
31
|
export function createServer(options) {
|
|
24
32
|
const server = new McpServer({
|
|
25
33
|
name: "mcp-fabric-api",
|
|
26
|
-
version: "2.
|
|
34
|
+
version: "2.1.1",
|
|
27
35
|
});
|
|
28
36
|
const tokenManager = options?.tokenManager ?? new TokenManager();
|
|
29
37
|
const fabricClient = new FabricClient(tokenManager);
|
|
@@ -33,7 +41,7 @@ export function createServer(options) {
|
|
|
33
41
|
const workspaceGuard = new WorkspaceGuard();
|
|
34
42
|
// Register all domain tools
|
|
35
43
|
registerWorkspaceTools(server, fabricClient, workspaceGuard);
|
|
36
|
-
registerLakehouseTools(server, fabricClient, workspaceGuard);
|
|
44
|
+
registerLakehouseTools(server, fabricClient, sqlClient, workspaceGuard);
|
|
37
45
|
registerWarehouseTools(server, fabricClient, workspaceGuard);
|
|
38
46
|
registerNotebookTools(server, fabricClient, workspaceGuard);
|
|
39
47
|
registerPipelineTools(server, fabricClient, workspaceGuard);
|
|
@@ -46,6 +54,14 @@ export function createServer(options) {
|
|
|
46
54
|
registerGraphQLApiTools(server, fabricClient, powerBIClient, workspaceGuard);
|
|
47
55
|
registerSqlEndpointTools(server, fabricClient, sqlClient);
|
|
48
56
|
registerVariableLibraryTools(server, fabricClient, workspaceGuard);
|
|
57
|
+
registerGitIntegrationTools(server, fabricClient, workspaceGuard);
|
|
58
|
+
registerDeploymentPipelineTools(server, fabricClient, workspaceGuard);
|
|
59
|
+
registerMirroredDatabaseTools(server, fabricClient, workspaceGuard);
|
|
60
|
+
registerKqlDatabaseTools(server, fabricClient, workspaceGuard);
|
|
61
|
+
registerMlModelTools(server, fabricClient, workspaceGuard);
|
|
62
|
+
registerMlExperimentTools(server, fabricClient, workspaceGuard);
|
|
63
|
+
registerCopyJobTools(server, fabricClient, workspaceGuard);
|
|
64
|
+
registerExternalDataShareTools(server, fabricClient, workspaceGuard);
|
|
49
65
|
registerAuthTools(server, tokenManager);
|
|
50
66
|
return server;
|
|
51
67
|
}
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAM3D,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,YAAY,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,4BAA4B;IAC5B,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7D,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerCopyJobTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
|
+
//# sourceMappingURL=copy-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-job.d.ts","sourceRoot":"","sources":["../../src/tools/copy-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QA6KjH"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatToolError } from "../core/errors.js";
|
|
3
|
+
import { paginateAll } from "../core/pagination.js";
|
|
4
|
+
import { pollOperation, getOperationResult } from "../core/lro.js";
|
|
5
|
+
import { encodeBase64, decodeBase64 } from "../utils/base64.js";
|
|
6
|
+
import { resolveFilesOrDirectory, writeFilesToDirectory } from "../utils/file-utils.js";
|
|
7
|
+
export function registerCopyJobTools(server, fabricClient, workspaceGuard) {
|
|
8
|
+
server.tool("copy_job_list", "List all copy jobs in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
|
|
9
|
+
try {
|
|
10
|
+
const items = await paginateAll(fabricClient, `/workspaces/${workspaceId}/items?type=CopyJob`);
|
|
11
|
+
return { content: [{ type: "text", text: JSON.stringify(items, null, 2) }] };
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
return formatToolError(error);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
server.tool("copy_job_get", "Get details of a specific copy job", {
|
|
18
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
19
|
+
copyJobId: z.string().describe("The copy job ID"),
|
|
20
|
+
}, async ({ workspaceId, copyJobId }) => {
|
|
21
|
+
try {
|
|
22
|
+
const response = await fabricClient.get(`/workspaces/${workspaceId}/items/${copyJobId}`);
|
|
23
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return formatToolError(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
server.tool("copy_job_create", "Create a new copy job in a workspace", {
|
|
30
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
31
|
+
displayName: z.string().describe("Display name for the copy job"),
|
|
32
|
+
description: z.string().optional().describe("Description of the copy job"),
|
|
33
|
+
}, async ({ workspaceId, displayName, description }) => {
|
|
34
|
+
try {
|
|
35
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
36
|
+
const body = { displayName, type: "CopyJob" };
|
|
37
|
+
if (description)
|
|
38
|
+
body.description = description;
|
|
39
|
+
const response = await fabricClient.post(`/workspaces/${workspaceId}/items`, body);
|
|
40
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return formatToolError(error);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
server.tool("copy_job_update", "Update a copy job's name or description", {
|
|
47
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
48
|
+
copyJobId: z.string().describe("The copy job ID"),
|
|
49
|
+
displayName: z.string().optional().describe("New display name"),
|
|
50
|
+
description: z.string().optional().describe("New description"),
|
|
51
|
+
}, async ({ workspaceId, copyJobId, displayName, description }) => {
|
|
52
|
+
try {
|
|
53
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
54
|
+
const body = {};
|
|
55
|
+
if (displayName !== undefined)
|
|
56
|
+
body.displayName = displayName;
|
|
57
|
+
if (description !== undefined)
|
|
58
|
+
body.description = description;
|
|
59
|
+
const response = await fabricClient.patch(`/workspaces/${workspaceId}/items/${copyJobId}`, body);
|
|
60
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return formatToolError(error);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
server.tool("copy_job_delete", "Delete a copy job", {
|
|
67
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
68
|
+
copyJobId: z.string().describe("The copy job ID"),
|
|
69
|
+
}, async ({ workspaceId, copyJobId }) => {
|
|
70
|
+
try {
|
|
71
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
72
|
+
await fabricClient.delete(`/workspaces/${workspaceId}/items/${copyJobId}`);
|
|
73
|
+
return { content: [{ type: "text", text: `Copy job ${copyJobId} deleted successfully` }] };
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return formatToolError(error);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
server.tool("copy_job_get_definition", "Get the definition of a copy job (long-running). Writes definition files to the specified output directory.", {
|
|
80
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
81
|
+
copyJobId: z.string().describe("The copy job ID"),
|
|
82
|
+
outputDirectoryPath: z.string().describe("Directory path where definition files will be written"),
|
|
83
|
+
}, async ({ workspaceId, copyJobId, outputDirectoryPath }) => {
|
|
84
|
+
try {
|
|
85
|
+
const response = await fabricClient.post(`/workspaces/${workspaceId}/items/${copyJobId}/getDefinition`);
|
|
86
|
+
let parts;
|
|
87
|
+
if (response.lro) {
|
|
88
|
+
await pollOperation(fabricClient, response.lro.operationId);
|
|
89
|
+
const result = await getOperationResult(fabricClient, response.lro.operationId);
|
|
90
|
+
if (result?.definition) {
|
|
91
|
+
parts = result.definition.parts;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!parts && response.data?.definition) {
|
|
95
|
+
parts = response.data.definition.parts;
|
|
96
|
+
}
|
|
97
|
+
if (!parts) {
|
|
98
|
+
return { content: [{ type: "text", text: "No definition returned from Fabric API" }], isError: true };
|
|
99
|
+
}
|
|
100
|
+
const files = parts.map((part) => ({
|
|
101
|
+
path: part.path,
|
|
102
|
+
content: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
|
|
103
|
+
}));
|
|
104
|
+
const written = await writeFilesToDirectory(outputDirectoryPath, files);
|
|
105
|
+
return { content: [{ type: "text", text: `Copy job definition written to: ${outputDirectoryPath}\nFiles:\n${written.map((f) => ` ${f}`).join("\n")}` }] };
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return formatToolError(error);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
server.tool("copy_job_update_definition", "Update a copy job's definition (long-running). Accepts definition parts inline or a directory path.", {
|
|
112
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
113
|
+
copyJobId: z.string().describe("The copy job ID"),
|
|
114
|
+
parts: z.array(z.object({
|
|
115
|
+
path: z.string().describe("The definition part path"),
|
|
116
|
+
content: z.string().describe("The file content as a string"),
|
|
117
|
+
})).optional().describe("Array of definition parts to upload"),
|
|
118
|
+
partsDirectoryPath: z.string().optional().describe("Path to a directory containing definition files"),
|
|
119
|
+
}, async ({ workspaceId, copyJobId, parts, partsDirectoryPath }) => {
|
|
120
|
+
try {
|
|
121
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
122
|
+
const resolved = await resolveFilesOrDirectory(parts, partsDirectoryPath);
|
|
123
|
+
const body = {
|
|
124
|
+
definition: {
|
|
125
|
+
parts: resolved.map((part) => ({
|
|
126
|
+
path: part.path,
|
|
127
|
+
payload: encodeBase64(part.content),
|
|
128
|
+
payloadType: "InlineBase64",
|
|
129
|
+
})),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
const response = await fabricClient.post(`/workspaces/${workspaceId}/items/${copyJobId}/updateDefinition`, body);
|
|
133
|
+
if (response.lro) {
|
|
134
|
+
const state = await pollOperation(fabricClient, response.lro.operationId);
|
|
135
|
+
return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
|
|
136
|
+
}
|
|
137
|
+
return { content: [{ type: "text", text: "Copy job definition updated successfully" }] };
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
return formatToolError(error);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=copy-job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-job.js","sourceRoot":"","sources":["../../src/tools/copy-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.d.ts","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QAwKlH"}
|
package/build/tools/dataflow.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { formatToolError } from "../core/errors.js";
|
|
3
3
|
import { paginateAll } from "../core/pagination.js";
|
|
4
|
+
import { pollOperation, getOperationResult } from "../core/lro.js";
|
|
5
|
+
import { decodeBase64 } from "../utils/base64.js";
|
|
4
6
|
import { runOnDemandJob, getJobInstance } from "../core/job-scheduler.js";
|
|
7
|
+
import { writeFilesToDirectory } from "../utils/file-utils.js";
|
|
5
8
|
export function registerDataflowTools(server, fabricClient, workspaceGuard) {
|
|
6
9
|
server.tool("dataflow_list", "List all Dataflow Gen2 items in a workspace", { workspaceId: z.string().describe("The workspace ID") }, async ({ workspaceId }) => {
|
|
7
10
|
try {
|
|
@@ -99,5 +102,37 @@ export function registerDataflowTools(server, fabricClient, workspaceGuard) {
|
|
|
99
102
|
return formatToolError(error);
|
|
100
103
|
}
|
|
101
104
|
});
|
|
105
|
+
server.tool("dataflow_get_definition", "Get the definition of a Dataflow Gen2 item (long-running). Writes definition files to the specified output directory.", {
|
|
106
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
107
|
+
dataflowId: z.string().describe("The dataflow ID"),
|
|
108
|
+
outputDirectoryPath: z.string().describe("Directory path where definition files will be written"),
|
|
109
|
+
}, async ({ workspaceId, dataflowId, outputDirectoryPath }) => {
|
|
110
|
+
try {
|
|
111
|
+
const response = await fabricClient.post(`/workspaces/${workspaceId}/items/${dataflowId}/getDefinition`);
|
|
112
|
+
let parts;
|
|
113
|
+
if (response.lro) {
|
|
114
|
+
await pollOperation(fabricClient, response.lro.operationId);
|
|
115
|
+
const result = await getOperationResult(fabricClient, response.lro.operationId);
|
|
116
|
+
if (result?.definition) {
|
|
117
|
+
parts = result.definition.parts;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (!parts && response.data?.definition) {
|
|
121
|
+
parts = response.data.definition.parts;
|
|
122
|
+
}
|
|
123
|
+
if (!parts) {
|
|
124
|
+
return { content: [{ type: "text", text: "No definition returned from Fabric API" }], isError: true };
|
|
125
|
+
}
|
|
126
|
+
const files = parts.map((part) => ({
|
|
127
|
+
path: part.path,
|
|
128
|
+
content: part.payloadType === "InlineBase64" ? decodeBase64(part.payload) : part.payload,
|
|
129
|
+
}));
|
|
130
|
+
const written = await writeFilesToDirectory(outputDirectoryPath, files);
|
|
131
|
+
return { content: [{ type: "text", text: `Dataflow definition written to: ${outputDirectoryPath}\nFiles:\n${written.map((f) => ` ${f}`).join("\n")}` }] };
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
return formatToolError(error);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
102
137
|
}
|
|
103
138
|
//# sourceMappingURL=dataflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/tools/dataflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerDeploymentPipelineTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
|
+
//# sourceMappingURL=deployment-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/deployment-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QA+N5H"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatToolError } from "../core/errors.js";
|
|
3
|
+
import { paginateAll } from "../core/pagination.js";
|
|
4
|
+
import { pollOperation } from "../core/lro.js";
|
|
5
|
+
export function registerDeploymentPipelineTools(server, fabricClient, workspaceGuard) {
|
|
6
|
+
server.tool("deployment_pipeline_list", "List all deployment pipelines accessible to the user", {}, async () => {
|
|
7
|
+
try {
|
|
8
|
+
const pipelines = await paginateAll(fabricClient, `/deploymentPipelines`);
|
|
9
|
+
return { content: [{ type: "text", text: JSON.stringify(pipelines, null, 2) }] };
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
return formatToolError(error);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
server.tool("deployment_pipeline_get", "Get details of a specific deployment pipeline", { pipelineId: z.string().describe("The deployment pipeline ID") }, async ({ pipelineId }) => {
|
|
16
|
+
try {
|
|
17
|
+
const response = await fabricClient.get(`/deploymentPipelines/${pipelineId}`);
|
|
18
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return formatToolError(error);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
server.tool("deployment_pipeline_create", "Create a new deployment pipeline", {
|
|
25
|
+
displayName: z.string().describe("Display name for the deployment pipeline"),
|
|
26
|
+
description: z.string().optional().describe("Description of the deployment pipeline"),
|
|
27
|
+
}, async ({ displayName, description }) => {
|
|
28
|
+
try {
|
|
29
|
+
const body = { displayName };
|
|
30
|
+
if (description)
|
|
31
|
+
body.description = description;
|
|
32
|
+
const response = await fabricClient.post(`/deploymentPipelines`, body);
|
|
33
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
return formatToolError(error);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
server.tool("deployment_pipeline_update", "Update a deployment pipeline's name or description", {
|
|
40
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
41
|
+
displayName: z.string().optional().describe("New display name"),
|
|
42
|
+
description: z.string().optional().describe("New description"),
|
|
43
|
+
}, async ({ pipelineId, displayName, description }) => {
|
|
44
|
+
try {
|
|
45
|
+
const body = {};
|
|
46
|
+
if (displayName !== undefined)
|
|
47
|
+
body.displayName = displayName;
|
|
48
|
+
if (description !== undefined)
|
|
49
|
+
body.description = description;
|
|
50
|
+
const response = await fabricClient.patch(`/deploymentPipelines/${pipelineId}`, body);
|
|
51
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return formatToolError(error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
server.tool("deployment_pipeline_delete", "Delete a deployment pipeline", { pipelineId: z.string().describe("The deployment pipeline ID") }, async ({ pipelineId }) => {
|
|
58
|
+
try {
|
|
59
|
+
await fabricClient.delete(`/deploymentPipelines/${pipelineId}`);
|
|
60
|
+
return { content: [{ type: "text", text: `Deployment pipeline ${pipelineId} deleted successfully` }] };
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return formatToolError(error);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
server.tool("deployment_pipeline_list_stages", "List all stages in a deployment pipeline", { pipelineId: z.string().describe("The deployment pipeline ID") }, async ({ pipelineId }) => {
|
|
67
|
+
try {
|
|
68
|
+
const stages = await paginateAll(fabricClient, `/deploymentPipelines/${pipelineId}/stages`);
|
|
69
|
+
return { content: [{ type: "text", text: JSON.stringify(stages, null, 2) }] };
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return formatToolError(error);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
server.tool("deployment_pipeline_list_stage_items", "List all items in a specific deployment pipeline stage", {
|
|
76
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
77
|
+
stageId: z.string().describe("The stage ID"),
|
|
78
|
+
}, async ({ pipelineId, stageId }) => {
|
|
79
|
+
try {
|
|
80
|
+
const items = await paginateAll(fabricClient, `/deploymentPipelines/${pipelineId}/stages/${stageId}/items`);
|
|
81
|
+
return { content: [{ type: "text", text: JSON.stringify(items, null, 2) }] };
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return formatToolError(error);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
server.tool("deployment_pipeline_assign_workspace", "Assign a workspace to a deployment pipeline stage", {
|
|
88
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
89
|
+
stageId: z.string().describe("The stage ID"),
|
|
90
|
+
workspaceId: z.string().describe("The workspace ID to assign"),
|
|
91
|
+
}, async ({ pipelineId, stageId, workspaceId }) => {
|
|
92
|
+
try {
|
|
93
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
94
|
+
const response = await fabricClient.post(`/deploymentPipelines/${pipelineId}/stages/${stageId}/assignWorkspace`, { workspaceId });
|
|
95
|
+
return { content: [{ type: "text", text: response.data ? JSON.stringify(response.data, null, 2) : "Workspace assigned to stage successfully" }] };
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return formatToolError(error);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
server.tool("deployment_pipeline_unassign_workspace", "Unassign a workspace from a deployment pipeline stage", {
|
|
102
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
103
|
+
stageId: z.string().describe("The stage ID"),
|
|
104
|
+
workspaceId: z.string().describe("The workspace ID to unassign"),
|
|
105
|
+
}, async ({ pipelineId, stageId, workspaceId }) => {
|
|
106
|
+
try {
|
|
107
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
108
|
+
const response = await fabricClient.post(`/deploymentPipelines/${pipelineId}/stages/${stageId}/unassignWorkspace`, { workspaceId });
|
|
109
|
+
return { content: [{ type: "text", text: response.data ? JSON.stringify(response.data, null, 2) : "Workspace unassigned from stage successfully" }] };
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
return formatToolError(error);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
server.tool("deployment_pipeline_deploy", "Deploy items from one stage to another in a deployment pipeline (long-running)", {
|
|
116
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
117
|
+
sourceStageId: z.string().describe("The source stage ID to deploy from"),
|
|
118
|
+
targetStageId: z.string().optional().describe("The target stage ID (defaults to the next stage)"),
|
|
119
|
+
items: z.array(z.object({
|
|
120
|
+
sourceItemId: z.string().describe("The source item ID"),
|
|
121
|
+
targetItemId: z.string().optional().describe("The target item ID (for updating existing items)"),
|
|
122
|
+
})).optional().describe("Specific items to deploy (deploys all if omitted)"),
|
|
123
|
+
note: z.string().optional().describe("Deployment note"),
|
|
124
|
+
workspaceId: z.string().optional().describe("The workspace ID (for workspace guard validation)"),
|
|
125
|
+
}, async ({ pipelineId, sourceStageId, targetStageId, items, note, workspaceId }) => {
|
|
126
|
+
try {
|
|
127
|
+
if (workspaceId) {
|
|
128
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
129
|
+
}
|
|
130
|
+
const body = { sourceStageId };
|
|
131
|
+
if (targetStageId)
|
|
132
|
+
body.targetStageId = targetStageId;
|
|
133
|
+
if (items)
|
|
134
|
+
body.items = items;
|
|
135
|
+
if (note)
|
|
136
|
+
body.note = note;
|
|
137
|
+
const response = await fabricClient.post(`/deploymentPipelines/${pipelineId}/deploy`, body);
|
|
138
|
+
if (response.lro) {
|
|
139
|
+
const state = await pollOperation(fabricClient, response.lro.operationId);
|
|
140
|
+
return { content: [{ type: "text", text: JSON.stringify(state, null, 2) }] };
|
|
141
|
+
}
|
|
142
|
+
return { content: [{ type: "text", text: response.data ? JSON.stringify(response.data, null, 2) : "Deployment initiated successfully" }] };
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
return formatToolError(error);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
server.tool("deployment_pipeline_list_operations", "List operations (deployment history) for a deployment pipeline", { pipelineId: z.string().describe("The deployment pipeline ID") }, async ({ pipelineId }) => {
|
|
149
|
+
try {
|
|
150
|
+
const operations = await paginateAll(fabricClient, `/deploymentPipelines/${pipelineId}/operations`);
|
|
151
|
+
return { content: [{ type: "text", text: JSON.stringify(operations, null, 2) }] };
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
return formatToolError(error);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
server.tool("deployment_pipeline_get_operation", "Get details of a specific deployment pipeline operation", {
|
|
158
|
+
pipelineId: z.string().describe("The deployment pipeline ID"),
|
|
159
|
+
operationId: z.string().describe("The operation ID"),
|
|
160
|
+
}, async ({ pipelineId, operationId }) => {
|
|
161
|
+
try {
|
|
162
|
+
const response = await fabricClient.get(`/deploymentPipelines/${pipelineId}/operations/${operationId}`);
|
|
163
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
return formatToolError(error);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=deployment-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-pipeline.js","sourceRoot":"","sources":["../../src/tools/deployment-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerExternalDataShareTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
|
+
//# sourceMappingURL=external-data-share.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-data-share.d.ts","sourceRoot":"","sources":["../../src/tools/external-data-share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QAkF3H"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { formatToolError } from "../core/errors.js";
|
|
3
|
+
import { paginateAll } from "../core/pagination.js";
|
|
4
|
+
export function registerExternalDataShareTools(server, fabricClient, workspaceGuard) {
|
|
5
|
+
server.tool("external_data_share_list", "List all external data shares for an item", {
|
|
6
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
7
|
+
itemId: z.string().describe("The item ID"),
|
|
8
|
+
}, async ({ workspaceId, itemId }) => {
|
|
9
|
+
try {
|
|
10
|
+
const shares = await paginateAll(fabricClient, `/workspaces/${workspaceId}/items/${itemId}/externalDataShares`);
|
|
11
|
+
return { content: [{ type: "text", text: JSON.stringify(shares, null, 2) }] };
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
return formatToolError(error);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
server.tool("external_data_share_get", "Get details of a specific external data share", {
|
|
18
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
19
|
+
itemId: z.string().describe("The item ID"),
|
|
20
|
+
externalDataShareId: z.string().describe("The external data share ID"),
|
|
21
|
+
}, async ({ workspaceId, itemId, externalDataShareId }) => {
|
|
22
|
+
try {
|
|
23
|
+
const response = await fabricClient.get(`/workspaces/${workspaceId}/items/${itemId}/externalDataShares/${externalDataShareId}`);
|
|
24
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return formatToolError(error);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
server.tool("external_data_share_create", "Create a new external data share for an item", {
|
|
31
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
32
|
+
itemId: z.string().describe("The item ID"),
|
|
33
|
+
paths: z.array(z.string()).describe("Array of paths to share externally"),
|
|
34
|
+
recipientUserPrincipalName: z.string().describe("User principal name of the recipient (email)"),
|
|
35
|
+
}, async ({ workspaceId, itemId, paths, recipientUserPrincipalName }) => {
|
|
36
|
+
try {
|
|
37
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
38
|
+
const body = { paths, recipient: { userPrincipalName: recipientUserPrincipalName } };
|
|
39
|
+
const response = await fabricClient.post(`/workspaces/${workspaceId}/items/${itemId}/externalDataShares`, body);
|
|
40
|
+
return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return formatToolError(error);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
server.tool("external_data_share_revoke", "Revoke an external data share", {
|
|
47
|
+
workspaceId: z.string().describe("The workspace ID"),
|
|
48
|
+
itemId: z.string().describe("The item ID"),
|
|
49
|
+
externalDataShareId: z.string().describe("The external data share ID to revoke"),
|
|
50
|
+
}, async ({ workspaceId, itemId, externalDataShareId }) => {
|
|
51
|
+
try {
|
|
52
|
+
await workspaceGuard.assertWorkspaceAllowed(fabricClient, workspaceId);
|
|
53
|
+
await fabricClient.post(`/workspaces/${workspaceId}/items/${itemId}/externalDataShares/${externalDataShareId}/revoke`);
|
|
54
|
+
return { content: [{ type: "text", text: `External data share ${externalDataShareId} revoked successfully` }] };
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
return formatToolError(error);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=external-data-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-data-share.js","sourceRoot":"","sources":["../../src/tools/external-data-share.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { FabricClient } from "../client/fabric-client.js";
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export declare function registerGitIntegrationTools(server: McpServer, fabricClient: FabricClient, workspaceGuard: WorkspaceGuard): void;
|
|
5
|
+
//# sourceMappingURL=git-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-integration.d.ts","sourceRoot":"","sources":["../../src/tools/git-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,QA+LxH"}
|