@mcp-abap-adt/calm-server 0.1.0
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/CHANGELOG.md +53 -0
- package/LICENSE +22 -0
- package/README.md +213 -0
- package/dist/bin/stdio.d.ts +3 -0
- package/dist/bin/stdio.d.ts.map +1 -0
- package/dist/bin/stdio.js +15 -0
- package/dist/bin/stdio.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/CalmToolRegistry.d.ts +27 -0
- package/dist/registry/CalmToolRegistry.d.ts.map +1 -0
- package/dist/registry/CalmToolRegistry.js +62 -0
- package/dist/registry/CalmToolRegistry.js.map +1 -0
- package/dist/registry/HandlerGroup.d.ts +14 -0
- package/dist/registry/HandlerGroup.d.ts.map +1 -0
- package/dist/registry/HandlerGroup.js +24 -0
- package/dist/registry/HandlerGroup.js.map +1 -0
- package/dist/registry/index.d.ts +5 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +10 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/jsonSchemaToZod.d.ts +13 -0
- package/dist/registry/jsonSchemaToZod.d.ts.map +1 -0
- package/dist/registry/jsonSchemaToZod.js +57 -0
- package/dist/registry/jsonSchemaToZod.js.map +1 -0
- package/dist/registry/types.d.ts +59 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +3 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/server/BaseCalmMcpServer.d.ts +37 -0
- package/dist/server/BaseCalmMcpServer.d.ts.map +1 -0
- package/dist/server/BaseCalmMcpServer.js +44 -0
- package/dist/server/BaseCalmMcpServer.js.map +1 -0
- package/dist/server/buildClient.d.ts +10 -0
- package/dist/server/buildClient.d.ts.map +1 -0
- package/dist/server/buildClient.js +74 -0
- package/dist/server/buildClient.js.map +1 -0
- package/dist/server/config.d.ts +18 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +58 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +13 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/runStdio.d.ts +12 -0
- package/dist/server/runStdio.d.ts.map +1 -0
- package/dist/server/runStdio.js +48 -0
- package/dist/server/runStdio.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +8 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +16 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/analytics/listAnalyticsProviders.d.ts +5 -0
- package/dist/tools/analytics/listAnalyticsProviders.d.ts.map +1 -0
- package/dist/tools/analytics/listAnalyticsProviders.js +16 -0
- package/dist/tools/analytics/listAnalyticsProviders.js.map +1 -0
- package/dist/tools/analytics/queryAnalytics.d.ts +15 -0
- package/dist/tools/analytics/queryAnalytics.d.ts.map +1 -0
- package/dist/tools/analytics/queryAnalytics.js +61 -0
- package/dist/tools/analytics/queryAnalytics.js.map +1 -0
- package/dist/tools/documents/getDocument.d.ts +7 -0
- package/dist/tools/documents/getDocument.d.ts.map +1 -0
- package/dist/tools/documents/getDocument.js +34 -0
- package/dist/tools/documents/getDocument.js.map +1 -0
- package/dist/tools/documents/index.d.ts +9 -0
- package/dist/tools/documents/index.d.ts.map +1 -0
- package/dist/tools/documents/index.js +16 -0
- package/dist/tools/documents/index.js.map +1 -0
- package/dist/tools/documents/listDocuments.d.ts +16 -0
- package/dist/tools/documents/listDocuments.d.ts.map +1 -0
- package/dist/tools/documents/listDocuments.js +85 -0
- package/dist/tools/documents/listDocuments.js.map +1 -0
- package/dist/tools/features/createFeature.d.ts +5 -0
- package/dist/tools/features/createFeature.d.ts.map +1 -0
- package/dist/tools/features/createFeature.js +55 -0
- package/dist/tools/features/createFeature.js.map +1 -0
- package/dist/tools/features/deleteFeature.d.ts +10 -0
- package/dist/tools/features/deleteFeature.d.ts.map +1 -0
- package/dist/tools/features/deleteFeature.js +35 -0
- package/dist/tools/features/deleteFeature.js.map +1 -0
- package/dist/tools/features/getFeature.d.ts +7 -0
- package/dist/tools/features/getFeature.d.ts.map +1 -0
- package/dist/tools/features/getFeature.js +37 -0
- package/dist/tools/features/getFeature.js.map +1 -0
- package/dist/tools/features/getFeatureByDisplayId.d.ts +7 -0
- package/dist/tools/features/getFeatureByDisplayId.d.ts.map +1 -0
- package/dist/tools/features/getFeatureByDisplayId.js +37 -0
- package/dist/tools/features/getFeatureByDisplayId.js.map +1 -0
- package/dist/tools/features/index.d.ts +21 -0
- package/dist/tools/features/index.d.ts.map +1 -0
- package/dist/tools/features/index.js +40 -0
- package/dist/tools/features/index.js.map +1 -0
- package/dist/tools/features/listFeaturePriorities.d.ts +7 -0
- package/dist/tools/features/listFeaturePriorities.d.ts.map +1 -0
- package/dist/tools/features/listFeaturePriorities.js +23 -0
- package/dist/tools/features/listFeaturePriorities.js.map +1 -0
- package/dist/tools/features/listFeatureStatuses.d.ts +7 -0
- package/dist/tools/features/listFeatureStatuses.d.ts.map +1 -0
- package/dist/tools/features/listFeatureStatuses.js +23 -0
- package/dist/tools/features/listFeatureStatuses.js.map +1 -0
- package/dist/tools/features/listFeatures.d.ts +19 -0
- package/dist/tools/features/listFeatures.d.ts.map +1 -0
- package/dist/tools/features/listFeatures.js +123 -0
- package/dist/tools/features/listFeatures.js.map +1 -0
- package/dist/tools/features/updateFeature.d.ts +7 -0
- package/dist/tools/features/updateFeature.d.ts.map +1 -0
- package/dist/tools/features/updateFeature.js +44 -0
- package/dist/tools/features/updateFeature.js.map +1 -0
- package/dist/tools/hierarchy/getHierarchyWithChildren.d.ts +10 -0
- package/dist/tools/hierarchy/getHierarchyWithChildren.d.ts.map +1 -0
- package/dist/tools/hierarchy/getHierarchyWithChildren.js +45 -0
- package/dist/tools/hierarchy/getHierarchyWithChildren.js.map +1 -0
- package/dist/tools/hierarchy/index.d.ts +9 -0
- package/dist/tools/hierarchy/index.d.ts.map +1 -0
- package/dist/tools/hierarchy/index.js +16 -0
- package/dist/tools/hierarchy/index.js.map +1 -0
- package/dist/tools/hierarchy/listHierarchy.d.ts +16 -0
- package/dist/tools/hierarchy/listHierarchy.d.ts.map +1 -0
- package/dist/tools/hierarchy/listHierarchy.js +74 -0
- package/dist/tools/hierarchy/listHierarchy.js.map +1 -0
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +45 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/logs/getLogs.d.ts +15 -0
- package/dist/tools/logs/getLogs.d.ts.map +1 -0
- package/dist/tools/logs/getLogs.js +55 -0
- package/dist/tools/logs/getLogs.js.map +1 -0
- package/dist/tools/logs/index.d.ts +7 -0
- package/dist/tools/logs/index.d.ts.map +1 -0
- package/dist/tools/logs/index.js +10 -0
- package/dist/tools/logs/index.js.map +1 -0
- package/dist/tools/processMonitoring/index.d.ts +7 -0
- package/dist/tools/processMonitoring/index.d.ts.map +1 -0
- package/dist/tools/processMonitoring/index.js +12 -0
- package/dist/tools/processMonitoring/index.js.map +1 -0
- package/dist/tools/processMonitoring/listBusinessProcesses.d.ts +10 -0
- package/dist/tools/processMonitoring/listBusinessProcesses.d.ts.map +1 -0
- package/dist/tools/processMonitoring/listBusinessProcesses.js +36 -0
- package/dist/tools/processMonitoring/listBusinessProcesses.js.map +1 -0
- package/dist/tools/projects/getProject.d.ts +7 -0
- package/dist/tools/projects/getProject.d.ts.map +1 -0
- package/dist/tools/projects/getProject.js +32 -0
- package/dist/tools/projects/getProject.js.map +1 -0
- package/dist/tools/projects/index.d.ts +9 -0
- package/dist/tools/projects/index.d.ts.map +1 -0
- package/dist/tools/projects/index.js +16 -0
- package/dist/tools/projects/index.js.map +1 -0
- package/dist/tools/projects/listProjects.d.ts +16 -0
- package/dist/tools/projects/listProjects.d.ts.map +1 -0
- package/dist/tools/projects/listProjects.js +69 -0
- package/dist/tools/projects/listProjects.js.map +1 -0
- package/dist/tools/tasks/getTask.d.ts +7 -0
- package/dist/tools/tasks/getTask.d.ts.map +1 -0
- package/dist/tools/tasks/getTask.js +34 -0
- package/dist/tools/tasks/getTask.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +11 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +20 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/listTaskComments.d.ts +11 -0
- package/dist/tools/tasks/listTaskComments.d.ts.map +1 -0
- package/dist/tools/tasks/listTaskComments.js +46 -0
- package/dist/tools/tasks/listTaskComments.js.map +1 -0
- package/dist/tools/tasks/listTasks.d.ts +17 -0
- package/dist/tools/tasks/listTasks.d.ts.map +1 -0
- package/dist/tools/tasks/listTasks.js +89 -0
- package/dist/tools/tasks/listTasks.js.map +1 -0
- package/dist/tools/testCases/getTestCase.d.ts +7 -0
- package/dist/tools/testCases/getTestCase.d.ts.map +1 -0
- package/dist/tools/testCases/getTestCase.js +34 -0
- package/dist/tools/testCases/getTestCase.js.map +1 -0
- package/dist/tools/testCases/index.d.ts +9 -0
- package/dist/tools/testCases/index.d.ts.map +1 -0
- package/dist/tools/testCases/index.js +16 -0
- package/dist/tools/testCases/index.js.map +1 -0
- package/dist/tools/testCases/listTestCases.d.ts +16 -0
- package/dist/tools/testCases/listTestCases.d.ts.map +1 -0
- package/dist/tools/testCases/listTestCases.js +69 -0
- package/dist/tools/testCases/listTestCases.js.map +1 -0
- package/dist/utils/errorMapping.d.ts +28 -0
- package/dist/utils/errorMapping.d.ts.map +1 -0
- package/dist/utils/errorMapping.js +88 -0
- package/dist/utils/errorMapping.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +15 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/odataFilter.d.ts +15 -0
- package/dist/utils/odataFilter.d.ts.map +1 -0
- package/dist/utils/odataFilter.js +24 -0
- package/dist/utils/odataFilter.js.map +1 -0
- package/dist/utils/tokenEconomy.d.ts +36 -0
- package/dist/utils/tokenEconomy.d.ts.map +1 -0
- package/dist/utils/tokenEconomy.js +37 -0
- package/dist/utils/tokenEconomy.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listBusinessProcesses.d.ts","sourceRoot":"","sources":["../../../src/tools/processMonitoring/listBusinessProcesses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAO9B,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAiCD,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,CACvD,0BAA0B,EAC1B,4BAA4B,CAI7B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listBusinessProcessesTool = void 0;
|
|
4
|
+
const calm_client_1 = require("@mcp-abap-adt/calm-client");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const definition = {
|
|
7
|
+
name: 'calm_process_monitoring_list_processes',
|
|
8
|
+
description: 'List monitored business processes (read-only). Response shape depends on the tenant configuration; `rows` holds the raw records.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
|
|
13
|
+
offset: { type: 'integer', minimum: 0 },
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
const handler = async (ctx, args) => {
|
|
18
|
+
const limit = (0, utils_1.clampListLimit)(args?.limit);
|
|
19
|
+
const offset = args?.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
|
|
20
|
+
const query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
|
|
21
|
+
try {
|
|
22
|
+
const raw = await ctx.calm
|
|
23
|
+
.getProcessMonitoring()
|
|
24
|
+
.listBusinessProcesses(query);
|
|
25
|
+
const rows = Array.isArray(raw) ? raw : (raw?.value ?? []);
|
|
26
|
+
return { rows };
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.listBusinessProcessesTool = {
|
|
33
|
+
toolDefinition: definition,
|
|
34
|
+
handler,
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=listBusinessProcesses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listBusinessProcesses.js","sourceRoot":"","sources":["../../../src/tools/processMonitoring/listBusinessProcesses.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAMvD,uCAIqB;AAWrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,wCAAwC;IAC9C,WAAW,EACT,kIAAkI;IACpI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;SACxC;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI;aACvB,oBAAoB,EAAE;aACtB,qBAAqB,CAAoC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAGlC;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IProject } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export interface IGetProjectArgs {
|
|
4
|
+
id: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const getProjectTool: ICalmHandlerEntry<IGetProjectArgs, IProject>;
|
|
7
|
+
//# sourceMappingURL=getProject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getProject.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/getProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ;AA8BD,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAGvE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProjectTool = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const definition = {
|
|
6
|
+
name: 'calm_projects_get',
|
|
7
|
+
description: 'Fetch a Cloud ALM project by id. Returns the full project record.',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
required: ['id'],
|
|
11
|
+
properties: { id: { type: 'string', description: 'Project id.' } },
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
const handler = async (ctx, args) => {
|
|
15
|
+
if (!args?.id) {
|
|
16
|
+
throw new utils_1.CalmToolError({
|
|
17
|
+
code: 'INVALID_ARGUMENT',
|
|
18
|
+
message: 'id is required',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
return await ctx.calm.getProjects().get(args.id);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.getProjectTool = {
|
|
29
|
+
toolDefinition: definition,
|
|
30
|
+
handler,
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=getProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getProject.js","sourceRoot":"","sources":["../../../src/tools/projects/getProject.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAMjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,mEAAmE;IACrE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;KACnE;CACF,CAAC;AAEF,MAAM,OAAO,GAA+C,KAAK,EAC/D,GAAG,EACH,IAAI,EACJ,EAAE;IACF,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,cAAc,GAAiD;IAC1E,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HandlerGroup } from '../../registry/HandlerGroup';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export type { IGetProjectArgs } from './getProject';
|
|
4
|
+
export { getProjectTool } from './getProject';
|
|
5
|
+
export type { IListProjectsArgs } from './listProjects';
|
|
6
|
+
export { listProjectsTool } from './listProjects';
|
|
7
|
+
export declare const PROJECTS_HANDLERS: readonly ICalmHandlerEntry[];
|
|
8
|
+
export declare const PROJECTS_GROUP: HandlerGroup;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,iBAAiB,EAAE,SAAS,iBAAiB,EAGzD,CAAC;AAEF,eAAO,MAAM,cAAc,cAAkD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROJECTS_GROUP = exports.PROJECTS_HANDLERS = exports.listProjectsTool = exports.getProjectTool = void 0;
|
|
4
|
+
const HandlerGroup_1 = require("../../registry/HandlerGroup");
|
|
5
|
+
const getProject_1 = require("./getProject");
|
|
6
|
+
const listProjects_1 = require("./listProjects");
|
|
7
|
+
var getProject_2 = require("./getProject");
|
|
8
|
+
Object.defineProperty(exports, "getProjectTool", { enumerable: true, get: function () { return getProject_2.getProjectTool; } });
|
|
9
|
+
var listProjects_2 = require("./listProjects");
|
|
10
|
+
Object.defineProperty(exports, "listProjectsTool", { enumerable: true, get: function () { return listProjects_2.listProjectsTool; } });
|
|
11
|
+
exports.PROJECTS_HANDLERS = [
|
|
12
|
+
listProjects_1.listProjectsTool,
|
|
13
|
+
getProject_1.getProjectTool,
|
|
14
|
+
];
|
|
15
|
+
exports.PROJECTS_GROUP = new HandlerGroup_1.HandlerGroup('projects', exports.PROJECTS_HANDLERS);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/projects/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,6CAA8C;AAC9C,iDAAkD;AAGlD,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AAEZ,QAAA,iBAAiB,GAAiC;IAC7D,+BAAgB;IAChB,2BAAc;CACf,CAAC;AAEW,QAAA,cAAc,GAAG,IAAI,2BAAY,CAAC,UAAU,EAAE,yBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IProject } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
import { type IListResponse } from '../../utils';
|
|
4
|
+
declare const ALLOWED_FIELDS: readonly ["id", "name", "description", "status", "type", "programId", "createdAt", "modifiedAt"];
|
|
5
|
+
type AllowedField = (typeof ALLOWED_FIELDS)[number];
|
|
6
|
+
export interface IListProjectsArgs {
|
|
7
|
+
status?: string;
|
|
8
|
+
programId?: string;
|
|
9
|
+
fields?: AllowedField[];
|
|
10
|
+
limit?: number;
|
|
11
|
+
offset?: number;
|
|
12
|
+
withCount?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const listProjectsTool: ICalmHandlerEntry<IListProjectsArgs, IListResponse<Partial<IProject>>>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=listProjects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listProjects.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/listProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAWrB,QAAA,MAAM,cAAc,kGASV,CAAC;AACX,KAAK,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmDD,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAC9C,iBAAiB,EACjB,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAIjC,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listProjectsTool = void 0;
|
|
4
|
+
const calm_client_1 = require("@mcp-abap-adt/calm-client");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const DEFAULT_FIELDS = [
|
|
7
|
+
'id',
|
|
8
|
+
'name',
|
|
9
|
+
'status',
|
|
10
|
+
'type',
|
|
11
|
+
'programId',
|
|
12
|
+
'modifiedAt',
|
|
13
|
+
];
|
|
14
|
+
const ALLOWED_FIELDS = [
|
|
15
|
+
'id',
|
|
16
|
+
'name',
|
|
17
|
+
'description',
|
|
18
|
+
'status',
|
|
19
|
+
'type',
|
|
20
|
+
'programId',
|
|
21
|
+
'createdAt',
|
|
22
|
+
'modifiedAt',
|
|
23
|
+
];
|
|
24
|
+
const definition = {
|
|
25
|
+
name: 'calm_projects_list',
|
|
26
|
+
description: 'List Cloud ALM projects. Optionally filter by status or programId. Returns compact records by default; use `fields` to include description or createdAt.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {
|
|
30
|
+
status: { type: 'string' },
|
|
31
|
+
programId: { type: 'string' },
|
|
32
|
+
fields: {
|
|
33
|
+
type: 'array',
|
|
34
|
+
items: { type: 'string', enum: [...ALLOWED_FIELDS] },
|
|
35
|
+
},
|
|
36
|
+
limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
|
|
37
|
+
offset: { type: 'integer', minimum: 0 },
|
|
38
|
+
withCount: { type: 'boolean' },
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const handler = async (ctx, args) => {
|
|
43
|
+
const limit = (0, utils_1.clampListLimit)(args?.limit);
|
|
44
|
+
const offset = args?.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
|
|
45
|
+
const filter = (0, utils_1.joinAndFilters)(args?.status ? `status eq '${(0, utils_1.escapeODataString)(args.status)}'` : undefined, args?.programId
|
|
46
|
+
? `programId eq '${(0, utils_1.escapeODataString)(args.programId)}'`
|
|
47
|
+
: undefined);
|
|
48
|
+
const fields = args?.fields && args.fields.length > 0 ? args.fields : DEFAULT_FIELDS;
|
|
49
|
+
let query = calm_client_1.ODataQuery.new()
|
|
50
|
+
.select([...fields])
|
|
51
|
+
.top(limit)
|
|
52
|
+
.skip(offset);
|
|
53
|
+
if (filter)
|
|
54
|
+
query = query.filter(filter);
|
|
55
|
+
if (args?.withCount)
|
|
56
|
+
query = query.count();
|
|
57
|
+
try {
|
|
58
|
+
const collection = await ctx.calm.getProjects().list(query);
|
|
59
|
+
return (0, utils_1.toListResponse)(collection, { limit, offset });
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.listProjectsTool = {
|
|
66
|
+
toolDefinition: definition,
|
|
67
|
+
handler,
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=listProjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listProjects.js","sourceRoot":"","sources":["../../../src/tools/projects/listProjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ITask } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export interface IGetTaskArgs {
|
|
4
|
+
id: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const getTaskTool: ICalmHandlerEntry<IGetTaskArgs, ITask>;
|
|
7
|
+
//# sourceMappingURL=getTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTask.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/getTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AA4BD,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAG9D,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTaskTool = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const definition = {
|
|
6
|
+
name: 'calm_tasks_get',
|
|
7
|
+
description: 'Fetch a single task by id. Returns the full task record.',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
required: ['id'],
|
|
11
|
+
properties: {
|
|
12
|
+
id: { type: 'string', description: 'Task id.' },
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
const handler = async (ctx, args) => {
|
|
17
|
+
if (!args?.id) {
|
|
18
|
+
throw new utils_1.CalmToolError({
|
|
19
|
+
code: 'INVALID_ARGUMENT',
|
|
20
|
+
message: 'id is required',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return await ctx.calm.getTasks().get(args.id);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.getTaskTool = {
|
|
31
|
+
toolDefinition: definition,
|
|
32
|
+
handler,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=getTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTask.js","sourceRoot":"","sources":["../../../src/tools/tasks/getTask.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAMjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,0DAA0D;IACvE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;SAChD;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAyC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACxE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,WAAW,GAA2C;IACjE,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HandlerGroup } from '../../registry/HandlerGroup';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export type { IGetTaskArgs } from './getTask';
|
|
4
|
+
export { getTaskTool } from './getTask';
|
|
5
|
+
export type { IListTaskCommentsArgs } from './listTaskComments';
|
|
6
|
+
export { listTaskCommentsTool } from './listTaskComments';
|
|
7
|
+
export type { IListTasksArgs } from './listTasks';
|
|
8
|
+
export { listTasksTool } from './listTasks';
|
|
9
|
+
export declare const TASKS_HANDLERS: readonly ICalmHandlerEntry[];
|
|
10
|
+
export declare const TASKS_GROUP: HandlerGroup;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,SAAS,iBAAiB,EAItD,CAAC;AAEF,eAAO,MAAM,WAAW,cAA4C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TASKS_GROUP = exports.TASKS_HANDLERS = exports.listTasksTool = exports.listTaskCommentsTool = exports.getTaskTool = void 0;
|
|
4
|
+
const HandlerGroup_1 = require("../../registry/HandlerGroup");
|
|
5
|
+
const getTask_1 = require("./getTask");
|
|
6
|
+
const listTaskComments_1 = require("./listTaskComments");
|
|
7
|
+
const listTasks_1 = require("./listTasks");
|
|
8
|
+
var getTask_2 = require("./getTask");
|
|
9
|
+
Object.defineProperty(exports, "getTaskTool", { enumerable: true, get: function () { return getTask_2.getTaskTool; } });
|
|
10
|
+
var listTaskComments_2 = require("./listTaskComments");
|
|
11
|
+
Object.defineProperty(exports, "listTaskCommentsTool", { enumerable: true, get: function () { return listTaskComments_2.listTaskCommentsTool; } });
|
|
12
|
+
var listTasks_2 = require("./listTasks");
|
|
13
|
+
Object.defineProperty(exports, "listTasksTool", { enumerable: true, get: function () { return listTasks_2.listTasksTool; } });
|
|
14
|
+
exports.TASKS_HANDLERS = [
|
|
15
|
+
listTasks_1.listTasksTool,
|
|
16
|
+
getTask_1.getTaskTool,
|
|
17
|
+
listTaskComments_1.listTaskCommentsTool,
|
|
18
|
+
];
|
|
19
|
+
exports.TASKS_GROUP = new HandlerGroup_1.HandlerGroup('tasks', exports.TASKS_HANDLERS);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/tasks/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,uCAAwC;AACxC,yDAA0D;AAC1D,2CAA4C;AAG5C,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AAEpB,uDAA0D;AAAjD,wHAAA,oBAAoB,OAAA;AAE7B,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAET,QAAA,cAAc,GAAiC;IAC1D,yBAAa;IACb,qBAAW;IACX,uCAAoB;CACrB,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,2BAAY,CAAC,OAAO,EAAE,sBAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ITaskComment } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
import { type IListResponse } from '../../utils';
|
|
4
|
+
export interface IListTaskCommentsArgs {
|
|
5
|
+
taskId: string;
|
|
6
|
+
limit?: number;
|
|
7
|
+
offset?: number;
|
|
8
|
+
withCount?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const listTaskCommentsTool: ICalmHandlerEntry<IListTaskCommentsArgs, IListResponse<Partial<ITaskComment>>>;
|
|
11
|
+
//# sourceMappingURL=listTaskComments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTaskComments.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listTaskComments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA2CD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAClD,qBAAqB,EACrB,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAIrC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listTaskCommentsTool = void 0;
|
|
4
|
+
const calm_client_1 = require("@mcp-abap-adt/calm-client");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const definition = {
|
|
7
|
+
name: 'calm_tasks_list_comments',
|
|
8
|
+
description: 'List comments on a specific task. Comments are ordered by createdAt descending by default in the source API.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
required: ['taskId'],
|
|
12
|
+
properties: {
|
|
13
|
+
taskId: { type: 'string', description: 'Parent task id.' },
|
|
14
|
+
limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
|
|
15
|
+
offset: { type: 'integer', minimum: 0 },
|
|
16
|
+
withCount: { type: 'boolean' },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const handler = async (ctx, args) => {
|
|
21
|
+
if (!args?.taskId) {
|
|
22
|
+
throw new utils_1.CalmToolError({
|
|
23
|
+
code: 'INVALID_ARGUMENT',
|
|
24
|
+
message: 'taskId is required',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const limit = (0, utils_1.clampListLimit)(args.limit);
|
|
28
|
+
const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
|
|
29
|
+
let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
|
|
30
|
+
if (args.withCount)
|
|
31
|
+
query = query.count();
|
|
32
|
+
try {
|
|
33
|
+
const collection = await ctx.calm
|
|
34
|
+
.getTasks()
|
|
35
|
+
.listComments(args.taskId, query);
|
|
36
|
+
return (0, utils_1.toListResponse)(collection, { limit, offset });
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.listTaskCommentsTool = {
|
|
43
|
+
toolDefinition: definition,
|
|
44
|
+
handler,
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=listTaskComments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTaskComments.js","sourceRoot":"","sources":["../../../src/tools/tasks/listTaskComments.ts"],"names":[],"mappings":";;;AAAA,2DAA0E;AAM1E,uCAOqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACT,8GAA8G;IAChH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAC1D,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI;aAC9B,QAAQ,EAAE;aACV,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,IAAA,sBAAc,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAG7B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ITask } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
import { type IListResponse } from '../../utils';
|
|
4
|
+
declare const ALLOWED_FIELDS: readonly ["id", "projectId", "title", "description", "type", "status", "subStatus", "externalId", "dueDate", "priorityId", "assigneeId", "assigneeName", "timeboxName", "timeboxStartDate", "timeboxEndDate", "lastChangedDate"];
|
|
5
|
+
type AllowedField = (typeof ALLOWED_FIELDS)[number];
|
|
6
|
+
export interface IListTasksArgs {
|
|
7
|
+
projectId: string;
|
|
8
|
+
status?: string;
|
|
9
|
+
assigneeId?: string;
|
|
10
|
+
fields?: AllowedField[];
|
|
11
|
+
limit?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
withCount?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const listTasksTool: ICalmHandlerEntry<IListTasksArgs, IListResponse<Partial<ITask>>>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=listTasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTasks.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAc,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAYrB,QAAA,MAAM,cAAc,kOAiBV,CAAC;AACX,KAAK,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+DD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAC3C,cAAc,EACd,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAI9B,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listTasksTool = void 0;
|
|
4
|
+
const calm_client_1 = require("@mcp-abap-adt/calm-client");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const DEFAULT_FIELDS = [
|
|
7
|
+
'id',
|
|
8
|
+
'projectId',
|
|
9
|
+
'title',
|
|
10
|
+
'status',
|
|
11
|
+
'priorityId',
|
|
12
|
+
'assigneeId',
|
|
13
|
+
'dueDate',
|
|
14
|
+
];
|
|
15
|
+
const ALLOWED_FIELDS = [
|
|
16
|
+
'id',
|
|
17
|
+
'projectId',
|
|
18
|
+
'title',
|
|
19
|
+
'description',
|
|
20
|
+
'type',
|
|
21
|
+
'status',
|
|
22
|
+
'subStatus',
|
|
23
|
+
'externalId',
|
|
24
|
+
'dueDate',
|
|
25
|
+
'priorityId',
|
|
26
|
+
'assigneeId',
|
|
27
|
+
'assigneeName',
|
|
28
|
+
'timeboxName',
|
|
29
|
+
'timeboxStartDate',
|
|
30
|
+
'timeboxEndDate',
|
|
31
|
+
'lastChangedDate',
|
|
32
|
+
];
|
|
33
|
+
const definition = {
|
|
34
|
+
name: 'calm_tasks_list',
|
|
35
|
+
description: 'List tasks in a Cloud ALM project. Returns compact records (id, title, status, assignee, due date by default). Filter by status and/or assigneeId.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
required: ['projectId'],
|
|
39
|
+
properties: {
|
|
40
|
+
projectId: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'Project id (required scope).',
|
|
43
|
+
},
|
|
44
|
+
status: { type: 'string' },
|
|
45
|
+
assigneeId: { type: 'string' },
|
|
46
|
+
fields: {
|
|
47
|
+
type: 'array',
|
|
48
|
+
items: { type: 'string', enum: [...ALLOWED_FIELDS] },
|
|
49
|
+
},
|
|
50
|
+
limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
|
|
51
|
+
offset: { type: 'integer', minimum: 0 },
|
|
52
|
+
withCount: { type: 'boolean' },
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const handler = async (ctx, args) => {
|
|
57
|
+
if (!args?.projectId) {
|
|
58
|
+
throw new utils_1.CalmToolError({
|
|
59
|
+
code: 'INVALID_ARGUMENT',
|
|
60
|
+
message: 'projectId is required',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const limit = (0, utils_1.clampListLimit)(args.limit);
|
|
64
|
+
const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
|
|
65
|
+
const filter = (0, utils_1.joinAndFilters)(`projectId eq '${(0, utils_1.escapeODataString)(args.projectId)}'`, args.status ? `status eq '${(0, utils_1.escapeODataString)(args.status)}'` : undefined, args.assigneeId
|
|
66
|
+
? `assigneeId eq '${(0, utils_1.escapeODataString)(args.assigneeId)}'`
|
|
67
|
+
: undefined);
|
|
68
|
+
const fields = args.fields && args.fields.length > 0 ? args.fields : DEFAULT_FIELDS;
|
|
69
|
+
let query = calm_client_1.ODataQuery.new()
|
|
70
|
+
.select([...fields])
|
|
71
|
+
.top(limit)
|
|
72
|
+
.skip(offset);
|
|
73
|
+
if (filter)
|
|
74
|
+
query = query.filter(filter);
|
|
75
|
+
if (args.withCount)
|
|
76
|
+
query = query.count();
|
|
77
|
+
try {
|
|
78
|
+
const collection = await ctx.calm.getTasks().list(query);
|
|
79
|
+
return (0, utils_1.toListResponse)(collection, { limit, offset });
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
exports.listTasksTool = {
|
|
86
|
+
toolDefinition: definition,
|
|
87
|
+
handler,
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=listTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTasks.js","sourceRoot":"","sources":["../../../src/tools/tasks/listTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ITestCase } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export interface IGetTestCaseArgs {
|
|
4
|
+
uuid: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const getTestCaseTool: ICalmHandlerEntry<IGetTestCaseArgs, ITestCase>;
|
|
7
|
+
//# sourceMappingURL=getTestCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTestCase.d.ts","sourceRoot":"","sources":["../../../src/tools/testCases/getTestCase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,CAG1E,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTestCaseTool = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const definition = {
|
|
6
|
+
name: 'calm_test_cases_get',
|
|
7
|
+
description: 'Fetch a manual test case by UUID. Returns the full record with title, description, status, project scope.',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
required: ['uuid'],
|
|
11
|
+
properties: {
|
|
12
|
+
uuid: { type: 'string', description: 'Test case UUID.' },
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
const handler = async (ctx, args) => {
|
|
17
|
+
if (!args?.uuid) {
|
|
18
|
+
throw new utils_1.CalmToolError({
|
|
19
|
+
code: 'INVALID_ARGUMENT',
|
|
20
|
+
message: 'uuid is required',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return await ctx.calm.getTestCases().get(args.uuid);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
throw (0, utils_1.mapCalmErrorForTool)(err);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.getTestCaseTool = {
|
|
31
|
+
toolDefinition: definition,
|
|
32
|
+
handler,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=getTestCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTestCase.js","sourceRoot":"","sources":["../../../src/tools/testCases/getTestCase.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAMjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,2GAA2G;IAC7G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;SACzD;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAiD,KAAK,EACjE,GAAG,EACH,IAAI,EACJ,EAAE;IACF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,eAAe,GAAmD;IAC7E,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HandlerGroup } from '../../registry/HandlerGroup';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
export type { IGetTestCaseArgs } from './getTestCase';
|
|
4
|
+
export { getTestCaseTool } from './getTestCase';
|
|
5
|
+
export type { IListTestCasesArgs } from './listTestCases';
|
|
6
|
+
export { listTestCasesTool } from './listTestCases';
|
|
7
|
+
export declare const TESTCASES_HANDLERS: readonly ICalmHandlerEntry[];
|
|
8
|
+
export declare const TESTCASES_GROUP: HandlerGroup;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/testCases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE,SAAS,iBAAiB,EAG1D,CAAC;AAEF,eAAO,MAAM,eAAe,cAG3B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TESTCASES_GROUP = exports.TESTCASES_HANDLERS = exports.listTestCasesTool = exports.getTestCaseTool = void 0;
|
|
4
|
+
const HandlerGroup_1 = require("../../registry/HandlerGroup");
|
|
5
|
+
const getTestCase_1 = require("./getTestCase");
|
|
6
|
+
const listTestCases_1 = require("./listTestCases");
|
|
7
|
+
var getTestCase_2 = require("./getTestCase");
|
|
8
|
+
Object.defineProperty(exports, "getTestCaseTool", { enumerable: true, get: function () { return getTestCase_2.getTestCaseTool; } });
|
|
9
|
+
var listTestCases_2 = require("./listTestCases");
|
|
10
|
+
Object.defineProperty(exports, "listTestCasesTool", { enumerable: true, get: function () { return listTestCases_2.listTestCasesTool; } });
|
|
11
|
+
exports.TESTCASES_HANDLERS = [
|
|
12
|
+
listTestCases_1.listTestCasesTool,
|
|
13
|
+
getTestCase_1.getTestCaseTool,
|
|
14
|
+
];
|
|
15
|
+
exports.TESTCASES_GROUP = new HandlerGroup_1.HandlerGroup('testCases', exports.TESTCASES_HANDLERS);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/testCases/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,+CAAgD;AAChD,mDAAoD;AAGpD,6CAAgD;AAAvC,8GAAA,eAAe,OAAA;AAExB,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAEb,QAAA,kBAAkB,GAAiC;IAC9D,iCAAiB;IACjB,6BAAe;CAChB,CAAC;AAEW,QAAA,eAAe,GAAG,IAAI,2BAAY,CAC7C,WAAW,EACX,0BAAkB,CACnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ITestCase } from '@mcp-abap-adt/calm-client';
|
|
2
|
+
import type { ICalmHandlerEntry } from '../../registry/types';
|
|
3
|
+
import { type IListResponse } from '../../utils';
|
|
4
|
+
declare const ALLOWED_FIELDS: readonly ["uuid", "title", "description", "statusCode", "projectId", "modifiedAt", "createdAt"];
|
|
5
|
+
type AllowedField = (typeof ALLOWED_FIELDS)[number];
|
|
6
|
+
export interface IListTestCasesArgs {
|
|
7
|
+
projectId?: string;
|
|
8
|
+
status?: string;
|
|
9
|
+
fields?: AllowedField[];
|
|
10
|
+
limit?: number;
|
|
11
|
+
offset?: number;
|
|
12
|
+
withCount?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const listTestCasesTool: ICalmHandlerEntry<IListTestCasesArgs, IListResponse<Partial<ITestCase>>>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=listTestCases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTestCases.d.ts","sourceRoot":"","sources":["../../../src/tools/testCases/listTestCases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAUrB,QAAA,MAAM,cAAc,iGAQV,CAAC;AACX,KAAK,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAqDD,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAC/C,kBAAkB,EAClB,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAIlC,CAAC"}
|