@mcp-abap-adt/calm-server 0.1.0 → 0.2.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +48 -25
  3. package/dist/bin/stdio.js +9 -6
  4. package/dist/bin/stdio.js.map +1 -1
  5. package/dist/server/config.d.ts.map +1 -1
  6. package/dist/server/config.js +7 -1
  7. package/dist/server/config.js.map +1 -1
  8. package/dist/server/runStdio.d.ts +2 -4
  9. package/dist/server/runStdio.d.ts.map +1 -1
  10. package/dist/server/runStdio.js +15 -5
  11. package/dist/server/runStdio.js.map +1 -1
  12. package/dist/server/stderrLogger.d.ts +24 -0
  13. package/dist/server/stderrLogger.d.ts.map +1 -0
  14. package/dist/server/stderrLogger.js +44 -0
  15. package/dist/server/stderrLogger.js.map +1 -0
  16. package/dist/tools/documents/createDocument.d.ts +5 -0
  17. package/dist/tools/documents/createDocument.d.ts.map +1 -0
  18. package/dist/tools/documents/createDocument.js +48 -0
  19. package/dist/tools/documents/createDocument.js.map +1 -0
  20. package/dist/tools/documents/deleteDocument.d.ts +10 -0
  21. package/dist/tools/documents/deleteDocument.d.ts.map +1 -0
  22. package/dist/tools/documents/deleteDocument.js +35 -0
  23. package/dist/tools/documents/deleteDocument.js.map +1 -0
  24. package/dist/tools/documents/index.d.ts +10 -0
  25. package/dist/tools/documents/index.d.ts.map +1 -1
  26. package/dist/tools/documents/index.js +21 -1
  27. package/dist/tools/documents/index.js.map +1 -1
  28. package/dist/tools/documents/listDocumentStatuses.d.ts +7 -0
  29. package/dist/tools/documents/listDocumentStatuses.d.ts.map +1 -0
  30. package/dist/tools/documents/listDocumentStatuses.js +23 -0
  31. package/dist/tools/documents/listDocumentStatuses.js.map +1 -0
  32. package/dist/tools/documents/listDocumentTypes.d.ts +7 -0
  33. package/dist/tools/documents/listDocumentTypes.d.ts.map +1 -0
  34. package/dist/tools/documents/listDocumentTypes.js +23 -0
  35. package/dist/tools/documents/listDocumentTypes.js.map +1 -0
  36. package/dist/tools/documents/updateDocument.d.ts +7 -0
  37. package/dist/tools/documents/updateDocument.d.ts.map +1 -0
  38. package/dist/tools/documents/updateDocument.js +43 -0
  39. package/dist/tools/documents/updateDocument.js.map +1 -0
  40. package/dist/tools/features/createExternalReference.d.ts +5 -0
  41. package/dist/tools/features/createExternalReference.d.ts.map +1 -0
  42. package/dist/tools/features/createExternalReference.js +49 -0
  43. package/dist/tools/features/createExternalReference.js.map +1 -0
  44. package/dist/tools/features/deleteExternalReference.d.ts +12 -0
  45. package/dist/tools/features/deleteExternalReference.d.ts.map +1 -0
  46. package/dist/tools/features/deleteExternalReference.js +44 -0
  47. package/dist/tools/features/deleteExternalReference.js.map +1 -0
  48. package/dist/tools/features/index.d.ts +6 -0
  49. package/dist/tools/features/index.d.ts.map +1 -1
  50. package/dist/tools/features/index.js +13 -1
  51. package/dist/tools/features/index.js.map +1 -1
  52. package/dist/tools/features/listExternalReferences.d.ts +11 -0
  53. package/dist/tools/features/listExternalReferences.d.ts.map +1 -0
  54. package/dist/tools/features/listExternalReferences.js +47 -0
  55. package/dist/tools/features/listExternalReferences.js.map +1 -0
  56. package/dist/tools/hierarchy/createHierarchyNode.d.ts +5 -0
  57. package/dist/tools/hierarchy/createHierarchyNode.d.ts.map +1 -0
  58. package/dist/tools/hierarchy/createHierarchyNode.js +46 -0
  59. package/dist/tools/hierarchy/createHierarchyNode.js.map +1 -0
  60. package/dist/tools/hierarchy/deleteHierarchyNode.d.ts +10 -0
  61. package/dist/tools/hierarchy/deleteHierarchyNode.d.ts.map +1 -0
  62. package/dist/tools/hierarchy/deleteHierarchyNode.js +35 -0
  63. package/dist/tools/hierarchy/deleteHierarchyNode.js.map +1 -0
  64. package/dist/tools/hierarchy/index.d.ts +6 -0
  65. package/dist/tools/hierarchy/index.d.ts.map +1 -1
  66. package/dist/tools/hierarchy/index.js +13 -1
  67. package/dist/tools/hierarchy/index.js.map +1 -1
  68. package/dist/tools/hierarchy/listHierarchy.d.ts.map +1 -1
  69. package/dist/tools/hierarchy/listHierarchy.js +4 -2
  70. package/dist/tools/hierarchy/listHierarchy.js.map +1 -1
  71. package/dist/tools/hierarchy/updateHierarchyNode.d.ts +7 -0
  72. package/dist/tools/hierarchy/updateHierarchyNode.d.ts.map +1 -0
  73. package/dist/tools/hierarchy/updateHierarchyNode.js +38 -0
  74. package/dist/tools/hierarchy/updateHierarchyNode.js.map +1 -0
  75. package/dist/tools/logs/index.d.ts +2 -0
  76. package/dist/tools/logs/index.d.ts.map +1 -1
  77. package/dist/tools/logs/index.js +8 -2
  78. package/dist/tools/logs/index.js.map +1 -1
  79. package/dist/tools/logs/postLogs.d.ts +10 -0
  80. package/dist/tools/logs/postLogs.d.ts.map +1 -0
  81. package/dist/tools/logs/postLogs.js +58 -0
  82. package/dist/tools/logs/postLogs.js.map +1 -0
  83. package/dist/tools/projects/createProject.d.ts +5 -0
  84. package/dist/tools/projects/createProject.d.ts.map +1 -0
  85. package/dist/tools/projects/createProject.js +42 -0
  86. package/dist/tools/projects/createProject.js.map +1 -0
  87. package/dist/tools/projects/getProgram.d.ts +7 -0
  88. package/dist/tools/projects/getProgram.d.ts.map +1 -0
  89. package/dist/tools/projects/getProgram.js +32 -0
  90. package/dist/tools/projects/getProgram.js.map +1 -0
  91. package/dist/tools/projects/index.d.ts +10 -0
  92. package/dist/tools/projects/index.d.ts.map +1 -1
  93. package/dist/tools/projects/index.js +21 -1
  94. package/dist/tools/projects/index.js.map +1 -1
  95. package/dist/tools/projects/listPrograms.d.ts +10 -0
  96. package/dist/tools/projects/listPrograms.d.ts.map +1 -0
  97. package/dist/tools/projects/listPrograms.js +36 -0
  98. package/dist/tools/projects/listPrograms.js.map +1 -0
  99. package/dist/tools/projects/listTeamMembers.d.ts +11 -0
  100. package/dist/tools/projects/listTeamMembers.d.ts.map +1 -0
  101. package/dist/tools/projects/listTeamMembers.js +49 -0
  102. package/dist/tools/projects/listTeamMembers.js.map +1 -0
  103. package/dist/tools/projects/listTimeboxes.d.ts +11 -0
  104. package/dist/tools/projects/listTimeboxes.d.ts.map +1 -0
  105. package/dist/tools/projects/listTimeboxes.js +49 -0
  106. package/dist/tools/projects/listTimeboxes.js.map +1 -0
  107. package/dist/tools/tasks/createTask.d.ts +5 -0
  108. package/dist/tools/tasks/createTask.d.ts.map +1 -0
  109. package/dist/tools/tasks/createTask.js +58 -0
  110. package/dist/tools/tasks/createTask.js.map +1 -0
  111. package/dist/tools/tasks/createTaskComment.d.ts +7 -0
  112. package/dist/tools/tasks/createTaskComment.d.ts.map +1 -0
  113. package/dist/tools/tasks/createTaskComment.js +36 -0
  114. package/dist/tools/tasks/createTaskComment.js.map +1 -0
  115. package/dist/tools/tasks/deleteTask.d.ts +10 -0
  116. package/dist/tools/tasks/deleteTask.d.ts.map +1 -0
  117. package/dist/tools/tasks/deleteTask.js +35 -0
  118. package/dist/tools/tasks/deleteTask.js.map +1 -0
  119. package/dist/tools/tasks/index.d.ts +14 -0
  120. package/dist/tools/tasks/index.d.ts.map +1 -1
  121. package/dist/tools/tasks/index.js +29 -1
  122. package/dist/tools/tasks/index.js.map +1 -1
  123. package/dist/tools/tasks/listDeliverables.d.ts +11 -0
  124. package/dist/tools/tasks/listDeliverables.d.ts.map +1 -0
  125. package/dist/tools/tasks/listDeliverables.js +42 -0
  126. package/dist/tools/tasks/listDeliverables.js.map +1 -0
  127. package/dist/tools/tasks/listTaskReferences.d.ts +11 -0
  128. package/dist/tools/tasks/listTaskReferences.d.ts.map +1 -0
  129. package/dist/tools/tasks/listTaskReferences.js +46 -0
  130. package/dist/tools/tasks/listTaskReferences.js.map +1 -0
  131. package/dist/tools/tasks/listWorkstreams.d.ts +11 -0
  132. package/dist/tools/tasks/listWorkstreams.d.ts.map +1 -0
  133. package/dist/tools/tasks/listWorkstreams.js +42 -0
  134. package/dist/tools/tasks/listWorkstreams.js.map +1 -0
  135. package/dist/tools/tasks/updateTask.d.ts +7 -0
  136. package/dist/tools/tasks/updateTask.d.ts.map +1 -0
  137. package/dist/tools/tasks/updateTask.js +44 -0
  138. package/dist/tools/tasks/updateTask.js.map +1 -0
  139. package/dist/tools/testCases/createTestAction.d.ts +5 -0
  140. package/dist/tools/testCases/createTestAction.d.ts.map +1 -0
  141. package/dist/tools/testCases/createTestAction.js +54 -0
  142. package/dist/tools/testCases/createTestAction.js.map +1 -0
  143. package/dist/tools/testCases/createTestActivity.d.ts +5 -0
  144. package/dist/tools/testCases/createTestActivity.d.ts.map +1 -0
  145. package/dist/tools/testCases/createTestActivity.js +46 -0
  146. package/dist/tools/testCases/createTestActivity.js.map +1 -0
  147. package/dist/tools/testCases/createTestCase.d.ts +5 -0
  148. package/dist/tools/testCases/createTestCase.d.ts.map +1 -0
  149. package/dist/tools/testCases/createTestCase.js +42 -0
  150. package/dist/tools/testCases/createTestCase.js.map +1 -0
  151. package/dist/tools/testCases/deleteTestCase.d.ts +10 -0
  152. package/dist/tools/testCases/deleteTestCase.d.ts.map +1 -0
  153. package/dist/tools/testCases/deleteTestCase.js +35 -0
  154. package/dist/tools/testCases/deleteTestCase.js.map +1 -0
  155. package/dist/tools/testCases/index.d.ts +14 -0
  156. package/dist/tools/testCases/index.d.ts.map +1 -1
  157. package/dist/tools/testCases/index.js +29 -1
  158. package/dist/tools/testCases/index.js.map +1 -1
  159. package/dist/tools/testCases/listTestActions.d.ts +11 -0
  160. package/dist/tools/testCases/listTestActions.d.ts.map +1 -0
  161. package/dist/tools/testCases/listTestActions.js +45 -0
  162. package/dist/tools/testCases/listTestActions.js.map +1 -0
  163. package/dist/tools/testCases/listTestActivities.d.ts +11 -0
  164. package/dist/tools/testCases/listTestActivities.d.ts.map +1 -0
  165. package/dist/tools/testCases/listTestActivities.js +45 -0
  166. package/dist/tools/testCases/listTestActivities.js.map +1 -0
  167. package/dist/tools/testCases/listTestCases.d.ts.map +1 -1
  168. package/dist/tools/testCases/listTestCases.js +5 -7
  169. package/dist/tools/testCases/listTestCases.js.map +1 -1
  170. package/dist/tools/testCases/updateTestCase.d.ts +7 -0
  171. package/dist/tools/testCases/updateTestCase.d.ts.map +1 -0
  172. package/dist/tools/testCases/updateTestCase.js +38 -0
  173. package/dist/tools/testCases/updateTestCase.js.map +1 -0
  174. package/package.json +1 -1
@@ -3,13 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listHierarchyTool = void 0;
4
4
  const calm_client_1 = require("@mcp-abap-adt/calm-client");
5
5
  const utils_1 = require("../../utils");
6
+ // `parentNodeUuid` and `rootNodeUuid` were previously in DEFAULT_FIELDS
7
+ // but HierarchyNodes doesn't expose either — sandbox returns 400 on
8
+ // $select. Kept in ALLOWED_FIELDS so a caller can opt in against a
9
+ // tenant that does expose them.
6
10
  const DEFAULT_FIELDS = [
7
11
  'uuid',
8
12
  'displayId',
9
13
  'title',
10
14
  'hierarchyLevel',
11
- 'parentNodeUuid',
12
- 'rootNodeUuid',
13
15
  ];
14
16
  const ALLOWED_FIELDS = [
15
17
  'uuid',
@@ -1 +1 @@
1
- {"version":3,"file":"listHierarchy.js","sourceRoot":"","sources":["../../../src/tools/hierarchy/listHierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listHierarchy.js","sourceRoot":"","sources":["../../../src/tools/hierarchy/listHierarchy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { IHierarchyNode, IUpdateHierarchyNodeParams } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export interface IUpdateHierarchyNodeArgs extends IUpdateHierarchyNodeParams {
4
+ uuid: string;
5
+ }
6
+ export declare const updateHierarchyNodeTool: ICalmHandlerEntry<IUpdateHierarchyNodeArgs, IHierarchyNode>;
7
+ //# sourceMappingURL=updateHierarchyNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateHierarchyNode.d.ts","sourceRoot":"","sources":["../../../src/tools/hierarchy/updateHierarchyNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAoCD,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CACrD,wBAAwB,EACxB,cAAc,CAIf,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateHierarchyNodeTool = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const definition = {
6
+ name: 'calm_hierarchy_update_node',
7
+ description: 'Update fields on an existing hierarchy node (PATCH — only fields you pass are modified). Destructive. Identify the node by `uuid`. Returns the updated node.',
8
+ inputSchema: {
9
+ type: 'object',
10
+ required: ['uuid'],
11
+ properties: {
12
+ uuid: { type: 'string', description: 'Hierarchy node UUID.' },
13
+ title: { type: 'string', description: 'New title.' },
14
+ description: { type: 'string', description: 'New description.' },
15
+ sequence: { type: 'integer', description: 'New sibling ordering.' },
16
+ },
17
+ },
18
+ };
19
+ const handler = async (ctx, args) => {
20
+ if (!args?.uuid) {
21
+ throw new utils_1.CalmToolError({
22
+ code: 'INVALID_ARGUMENT',
23
+ message: 'uuid is required',
24
+ });
25
+ }
26
+ const { uuid, ...patch } = args;
27
+ try {
28
+ return await ctx.calm.getHierarchy().update(uuid, patch);
29
+ }
30
+ catch (err) {
31
+ throw (0, utils_1.mapCalmErrorForTool)(err);
32
+ }
33
+ };
34
+ exports.updateHierarchyNodeTool = {
35
+ toolDefinition: definition,
36
+ handler,
37
+ };
38
+ //# sourceMappingURL=updateHierarchyNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateHierarchyNode.js","sourceRoot":"","sources":["../../../src/tools/hierarchy/updateHierarchyNode.ts"],"names":[],"mappings":";;;AASA,uCAAiE;AAMjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EACT,8JAA8J;IAChK,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,sBAAsB,EAAE;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;YACpD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;SACpE;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,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,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,uBAAuB,GAGhC;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -2,6 +2,8 @@ import { HandlerGroup } from '../../registry/HandlerGroup';
2
2
  import type { ICalmHandlerEntry } from '../../registry/types';
3
3
  export type { IGetLogsArgs, IGetLogsResult } from './getLogs';
4
4
  export { getLogsTool } from './getLogs';
5
+ export type { IPostLogsArgs, IPostLogsResult } from './postLogs';
6
+ export { postLogsTool } from './postLogs';
5
7
  export declare const LOGS_HANDLERS: readonly ICalmHandlerEntry[];
6
8
  export declare const LOGS_GROUP: HandlerGroup;
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/logs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAAkB,CAAC;AAEzE,eAAO,MAAM,UAAU,cAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/logs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAGrD,CAAC;AAEF,eAAO,MAAM,UAAU,cAA0C,CAAC"}
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LOGS_GROUP = exports.LOGS_HANDLERS = exports.getLogsTool = void 0;
3
+ exports.LOGS_GROUP = exports.LOGS_HANDLERS = exports.postLogsTool = exports.getLogsTool = void 0;
4
4
  const HandlerGroup_1 = require("../../registry/HandlerGroup");
5
5
  const getLogs_1 = require("./getLogs");
6
+ const postLogs_1 = require("./postLogs");
6
7
  var getLogs_2 = require("./getLogs");
7
8
  Object.defineProperty(exports, "getLogsTool", { enumerable: true, get: function () { return getLogs_2.getLogsTool; } });
8
- exports.LOGS_HANDLERS = [getLogs_1.getLogsTool];
9
+ var postLogs_2 = require("./postLogs");
10
+ Object.defineProperty(exports, "postLogsTool", { enumerable: true, get: function () { return postLogs_2.postLogsTool; } });
11
+ exports.LOGS_HANDLERS = [
12
+ getLogs_1.getLogsTool,
13
+ postLogs_1.postLogsTool,
14
+ ];
9
15
  exports.LOGS_GROUP = new HandlerGroup_1.HandlerGroup('logs', exports.LOGS_HANDLERS);
10
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/logs/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,uCAAwC;AAGxC,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AAEP,QAAA,aAAa,GAAiC,CAAC,qBAAW,CAAC,CAAC;AAE5D,QAAA,UAAU,GAAG,IAAI,2BAAY,CAAC,MAAM,EAAE,qBAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/logs/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,uCAAwC;AACxC,yCAA0C;AAG1C,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AAEpB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAER,QAAA,aAAa,GAAiC;IACzD,qBAAW;IACX,uBAAY;CACb,CAAC;AAEW,QAAA,UAAU,GAAG,IAAI,2BAAY,CAAC,MAAM,EAAE,qBAAa,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { IPostLogsParams } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export interface IPostLogsArgs extends IPostLogsParams {
4
+ records: unknown;
5
+ }
6
+ export interface IPostLogsResult {
7
+ result: unknown;
8
+ }
9
+ export declare const postLogsTool: ICalmHandlerEntry<IPostLogsArgs, IPostLogsResult>;
10
+ //# sourceMappingURL=postLogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postLogs.d.ts","sourceRoot":"","sources":["../../../src/tools/logs/postLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;CACjB;AA0DD,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAG1E,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postLogsTool = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const definition = {
6
+ name: 'calm_logs_post',
7
+ description: "Post inbound log records to Cloud ALM Logs (OpenTelemetry-style). Destructive. Requires `useCase` and `serviceId` (routing keys) plus a `records` payload (caller-defined shape — the Logs API does not enforce a schema). Returns the server's response wrapped under `result`.",
8
+ inputSchema: {
9
+ type: 'object',
10
+ required: ['useCase', 'serviceId', 'records'],
11
+ properties: {
12
+ useCase: {
13
+ type: 'string',
14
+ description: 'Routing key — Cloud ALM use-case identifier.',
15
+ },
16
+ serviceId: {
17
+ type: 'string',
18
+ description: 'Routing key — id of the emitting service.',
19
+ },
20
+ version: { type: 'string', description: 'Optional schema version.' },
21
+ dev: {
22
+ type: 'boolean',
23
+ description: 'Optional dev-mode flag (passed through as a query param).',
24
+ },
25
+ tag: { type: 'string', description: 'Optional free-form tag.' },
26
+ records: {
27
+ description: 'Log payload. Shape is caller-defined; pass an array, an object, or whatever the receiving use-case expects.',
28
+ },
29
+ },
30
+ },
31
+ };
32
+ const handler = async (ctx, args) => {
33
+ if (!args?.useCase || !args?.serviceId) {
34
+ throw new utils_1.CalmToolError({
35
+ code: 'INVALID_ARGUMENT',
36
+ message: 'useCase and serviceId are required',
37
+ });
38
+ }
39
+ if (args.records === undefined) {
40
+ throw new utils_1.CalmToolError({
41
+ code: 'INVALID_ARGUMENT',
42
+ message: 'records is required',
43
+ });
44
+ }
45
+ const { records, ...params } = args;
46
+ try {
47
+ const result = await ctx.calm.getLogs().post(params, records);
48
+ return { result };
49
+ }
50
+ catch (err) {
51
+ throw (0, utils_1.mapCalmErrorForTool)(err);
52
+ }
53
+ };
54
+ exports.postLogsTool = {
55
+ toolDefinition: definition,
56
+ handler,
57
+ };
58
+ //# sourceMappingURL=postLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postLogs.js","sourceRoot":"","sources":["../../../src/tools/logs/postLogs.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAUjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,kRAAkR;IACpR,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;QAC7C,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aACzD;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACpE,GAAG,EAAE;gBACH,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,2DAA2D;aAC9D;YACD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAC/D,OAAO,EAAE;gBACP,WAAW,EACT,6GAA6G;aAChH;SACF;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAoD,KAAK,EACpE,GAAG,EACH,IAAI,EACJ,EAAE;IACF,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,oCAAoC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,YAAY,GAAsD;IAC7E,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ICreateProjectParams, IProject } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export type ICreateProjectArgs = ICreateProjectParams;
4
+ export declare const createProjectTool: ICalmHandlerEntry<ICreateProjectArgs, IProject>;
5
+ //# sourceMappingURL=createProject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProject.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/createProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAwCtD,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAC/C,kBAAkB,EAClB,QAAQ,CAIT,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProjectTool = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const definition = {
6
+ name: 'calm_projects_create',
7
+ description: 'Create a new Cloud ALM project. Destructive. Requires `name`; `description` and `programId` are optional. Returns the newly created project (including the server-generated id).',
8
+ inputSchema: {
9
+ type: 'object',
10
+ required: ['name'],
11
+ properties: {
12
+ name: { type: 'string', description: 'Project name.' },
13
+ description: {
14
+ type: 'string',
15
+ description: 'Optional long-form description.',
16
+ },
17
+ programId: {
18
+ type: 'string',
19
+ description: 'Optional parent program id.',
20
+ },
21
+ },
22
+ },
23
+ };
24
+ const handler = async (ctx, args) => {
25
+ if (!args?.name) {
26
+ throw new utils_1.CalmToolError({
27
+ code: 'INVALID_ARGUMENT',
28
+ message: 'name is required',
29
+ });
30
+ }
31
+ try {
32
+ return await ctx.calm.getProjects().create(args);
33
+ }
34
+ catch (err) {
35
+ throw (0, utils_1.mapCalmErrorForTool)(err);
36
+ }
37
+ };
38
+ exports.createProjectTool = {
39
+ toolDefinition: definition,
40
+ handler,
41
+ };
42
+ //# sourceMappingURL=createProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../src/tools/projects/createProject.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAIjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,kLAAkL;IACpL,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,eAAe,EAAE;YACtD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;SACF;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAkD,KAAK,EAClE,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,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,iBAAiB,GAG1B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IProgram } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export interface IGetProgramArgs {
4
+ id: string;
5
+ }
6
+ export declare const getProgramTool: ICalmHandlerEntry<IGetProgramArgs, IProgram>;
7
+ //# sourceMappingURL=getProgram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/getProgram.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.getProgramTool = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const definition = {
6
+ name: 'calm_projects_get_program',
7
+ description: 'Fetch a Cloud ALM program by id. A program is the parent organisational unit that groups one or more projects.',
8
+ inputSchema: {
9
+ type: 'object',
10
+ required: ['id'],
11
+ properties: { id: { type: 'string', description: 'Program 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().getProgram(args.id);
23
+ }
24
+ catch (err) {
25
+ throw (0, utils_1.mapCalmErrorForTool)(err);
26
+ }
27
+ };
28
+ exports.getProgramTool = {
29
+ toolDefinition: definition,
30
+ handler,
31
+ };
32
+ //# sourceMappingURL=getProgram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProgram.js","sourceRoot":"","sources":["../../../src/tools/projects/getProgram.ts"],"names":[],"mappings":";;;AAMA,uCAAiE;AAMjE,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,gHAAgH;IAClH,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,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,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"}
@@ -1,9 +1,19 @@
1
1
  import { HandlerGroup } from '../../registry/HandlerGroup';
2
2
  import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export type { ICreateProjectArgs } from './createProject';
4
+ export { createProjectTool } from './createProject';
5
+ export type { IGetProgramArgs } from './getProgram';
6
+ export { getProgramTool } from './getProgram';
3
7
  export type { IGetProjectArgs } from './getProject';
4
8
  export { getProjectTool } from './getProject';
9
+ export type { IListProgramsArgs } from './listPrograms';
10
+ export { listProgramsTool } from './listPrograms';
5
11
  export type { IListProjectsArgs } from './listProjects';
6
12
  export { listProjectsTool } from './listProjects';
13
+ export type { IListTeamMembersArgs } from './listTeamMembers';
14
+ export { listTeamMembersTool } from './listTeamMembers';
15
+ export type { IListTimeboxesArgs } from './listTimeboxes';
16
+ export { listTimeboxesTool } from './listTimeboxes';
7
17
  export declare const PROJECTS_HANDLERS: readonly ICalmHandlerEntry[];
8
18
  export declare const PROJECTS_GROUP: HandlerGroup;
9
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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;AAS9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,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;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAE,SAAS,iBAAiB,EAQzD,CAAC;AAEF,eAAO,MAAM,cAAc,cAAkD,CAAC"}
@@ -1,16 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROJECTS_GROUP = exports.PROJECTS_HANDLERS = exports.listProjectsTool = exports.getProjectTool = void 0;
3
+ exports.PROJECTS_GROUP = exports.PROJECTS_HANDLERS = exports.listTimeboxesTool = exports.listTeamMembersTool = exports.listProjectsTool = exports.listProgramsTool = exports.getProjectTool = exports.getProgramTool = exports.createProjectTool = void 0;
4
4
  const HandlerGroup_1 = require("../../registry/HandlerGroup");
5
+ const createProject_1 = require("./createProject");
6
+ const getProgram_1 = require("./getProgram");
5
7
  const getProject_1 = require("./getProject");
8
+ const listPrograms_1 = require("./listPrograms");
6
9
  const listProjects_1 = require("./listProjects");
10
+ const listTeamMembers_1 = require("./listTeamMembers");
11
+ const listTimeboxes_1 = require("./listTimeboxes");
12
+ var createProject_2 = require("./createProject");
13
+ Object.defineProperty(exports, "createProjectTool", { enumerable: true, get: function () { return createProject_2.createProjectTool; } });
14
+ var getProgram_2 = require("./getProgram");
15
+ Object.defineProperty(exports, "getProgramTool", { enumerable: true, get: function () { return getProgram_2.getProgramTool; } });
7
16
  var getProject_2 = require("./getProject");
8
17
  Object.defineProperty(exports, "getProjectTool", { enumerable: true, get: function () { return getProject_2.getProjectTool; } });
18
+ var listPrograms_2 = require("./listPrograms");
19
+ Object.defineProperty(exports, "listProgramsTool", { enumerable: true, get: function () { return listPrograms_2.listProgramsTool; } });
9
20
  var listProjects_2 = require("./listProjects");
10
21
  Object.defineProperty(exports, "listProjectsTool", { enumerable: true, get: function () { return listProjects_2.listProjectsTool; } });
22
+ var listTeamMembers_2 = require("./listTeamMembers");
23
+ Object.defineProperty(exports, "listTeamMembersTool", { enumerable: true, get: function () { return listTeamMembers_2.listTeamMembersTool; } });
24
+ var listTimeboxes_2 = require("./listTimeboxes");
25
+ Object.defineProperty(exports, "listTimeboxesTool", { enumerable: true, get: function () { return listTimeboxes_2.listTimeboxesTool; } });
11
26
  exports.PROJECTS_HANDLERS = [
12
27
  listProjects_1.listProjectsTool,
13
28
  getProject_1.getProjectTool,
29
+ createProject_1.createProjectTool,
30
+ listPrograms_1.listProgramsTool,
31
+ getProgram_1.getProgramTool,
32
+ listTeamMembers_1.listTeamMembersTool,
33
+ listTimeboxes_1.listTimeboxesTool,
14
34
  ];
15
35
  exports.PROJECTS_GROUP = new HandlerGroup_1.HandlerGroup('projects', exports.PROJECTS_HANDLERS);
16
36
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/projects/index.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAE3D,mDAAoD;AACpD,6CAA8C;AAC9C,6CAA8C;AAC9C,iDAAkD;AAClD,iDAAkD;AAClD,uDAAwD;AACxD,mDAAoD;AAGpD,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAE1B,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AAEzB,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AAEzB,qDAAwD;AAA/C,sHAAA,mBAAmB,OAAA;AAE5B,iDAAoD;AAA3C,kHAAA,iBAAiB,OAAA;AAEb,QAAA,iBAAiB,GAAiC;IAC7D,+BAAgB;IAChB,2BAAc;IACd,iCAAiB;IACjB,+BAAgB;IAChB,2BAAc;IACd,qCAAmB;IACnB,iCAAiB;CAClB,CAAC;AAEW,QAAA,cAAc,GAAG,IAAI,2BAAY,CAAC,UAAU,EAAE,yBAAiB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type IProgram } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ import { type IListResponse } from '../../utils';
4
+ export interface IListProgramsArgs {
5
+ limit?: number;
6
+ offset?: number;
7
+ withCount?: boolean;
8
+ }
9
+ export declare const listProgramsTool: ICalmHandlerEntry<IListProgramsArgs, IListResponse<IProgram>>;
10
+ //# sourceMappingURL=listPrograms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPrograms.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/listPrograms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgCD,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAC9C,iBAAiB,EACjB,aAAa,CAAC,QAAQ,CAAC,CAIxB,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listProgramsTool = 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_projects_list_programs',
8
+ description: 'List Cloud ALM programs (the parent organisational unit grouping projects). Paginated; pair with calm_projects_get_program for detail.',
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
+ withCount: { type: 'boolean' },
15
+ },
16
+ },
17
+ };
18
+ const handler = async (ctx, args) => {
19
+ const limit = (0, utils_1.clampListLimit)(args?.limit);
20
+ const offset = args?.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
21
+ let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
22
+ if (args?.withCount)
23
+ query = query.count();
24
+ try {
25
+ const collection = await ctx.calm.getProjects().listPrograms(query);
26
+ return (0, utils_1.toListResponse)(collection, { limit, offset });
27
+ }
28
+ catch (err) {
29
+ throw (0, utils_1.mapCalmErrorForTool)(err);
30
+ }
31
+ };
32
+ exports.listProgramsTool = {
33
+ toolDefinition: definition,
34
+ handler,
35
+ };
36
+ //# sourceMappingURL=listPrograms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPrograms.js","sourceRoot":"","sources":["../../../src/tools/projects/listPrograms.ts"],"names":[],"mappings":";;;AAAA,2DAAsE;AAMtE,uCAMqB;AAQrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,wIAAwI;IAC1I,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;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,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,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,EAAE,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpE,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,gBAAgB,GAGzB;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ITeamMember } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ import { type IListResponse } from '../../utils';
4
+ export interface IListTeamMembersArgs {
5
+ projectId: string;
6
+ limit?: number;
7
+ offset?: number;
8
+ withCount?: boolean;
9
+ }
10
+ export declare const listTeamMembersTool: ICalmHandlerEntry<IListTeamMembersArgs, IListResponse<ITeamMember>>;
11
+ //# sourceMappingURL=listTeamMembers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTeamMembers.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/listTeamMembers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CACjD,oBAAoB,EACpB,aAAa,CAAC,WAAW,CAAC,CAI3B,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listTeamMembersTool = 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_projects_list_team_members',
8
+ description: 'List the team members assigned to a Cloud ALM project. Requires `projectId`. Returns user ids, names, and roles per the project assignment table.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ required: ['projectId'],
12
+ properties: {
13
+ projectId: {
14
+ type: 'string',
15
+ description: 'Project id (required scope).',
16
+ },
17
+ limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
18
+ offset: { type: 'integer', minimum: 0 },
19
+ withCount: { type: 'boolean' },
20
+ },
21
+ },
22
+ };
23
+ const handler = async (ctx, args) => {
24
+ if (!args?.projectId) {
25
+ throw new utils_1.CalmToolError({
26
+ code: 'INVALID_ARGUMENT',
27
+ message: 'projectId is required',
28
+ });
29
+ }
30
+ const limit = (0, utils_1.clampListLimit)(args.limit);
31
+ const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
32
+ let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
33
+ if (args.withCount)
34
+ query = query.count();
35
+ try {
36
+ const collection = await ctx.calm
37
+ .getProjects()
38
+ .listTeamMembers(args.projectId, query);
39
+ return (0, utils_1.toListResponse)(collection, { limit, offset });
40
+ }
41
+ catch (err) {
42
+ throw (0, utils_1.mapCalmErrorForTool)(err);
43
+ }
44
+ };
45
+ exports.listTeamMembersTool = {
46
+ toolDefinition: definition,
47
+ handler,
48
+ };
49
+ //# sourceMappingURL=listTeamMembers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTeamMembers.js","sourceRoot":"","sources":["../../../src/tools/projects/listTeamMembers.ts"],"names":[],"mappings":";;;AAAA,2DAAyE;AAMzE,uCAOqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,iCAAiC;IACvC,WAAW,EACT,mJAAmJ;IACrJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,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,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uBAAuB;SACjC,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;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI;aAC9B,WAAW,EAAE;aACb,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,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,mBAAmB,GAG5B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ITimebox } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ import { type IListResponse } from '../../utils';
4
+ export interface IListTimeboxesArgs {
5
+ projectId: string;
6
+ limit?: number;
7
+ offset?: number;
8
+ withCount?: boolean;
9
+ }
10
+ export declare const listTimeboxesTool: ICalmHandlerEntry<IListTimeboxesArgs, IListResponse<ITimebox>>;
11
+ //# sourceMappingURL=listTimeboxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTimeboxes.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/listTimeboxes.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,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAC/C,kBAAkB,EAClB,aAAa,CAAC,QAAQ,CAAC,CAIxB,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listTimeboxesTool = 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_projects_list_timeboxes',
8
+ description: 'List timeboxes (sprints / phases) for a Cloud ALM project. Requires `projectId`. Useful when filtering tasks or features by `timeboxName`.',
9
+ inputSchema: {
10
+ type: 'object',
11
+ required: ['projectId'],
12
+ properties: {
13
+ projectId: {
14
+ type: 'string',
15
+ description: 'Project id (required scope).',
16
+ },
17
+ limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
18
+ offset: { type: 'integer', minimum: 0 },
19
+ withCount: { type: 'boolean' },
20
+ },
21
+ },
22
+ };
23
+ const handler = async (ctx, args) => {
24
+ if (!args?.projectId) {
25
+ throw new utils_1.CalmToolError({
26
+ code: 'INVALID_ARGUMENT',
27
+ message: 'projectId is required',
28
+ });
29
+ }
30
+ const limit = (0, utils_1.clampListLimit)(args.limit);
31
+ const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
32
+ let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
33
+ if (args.withCount)
34
+ query = query.count();
35
+ try {
36
+ const collection = await ctx.calm
37
+ .getProjects()
38
+ .listTimeboxes(args.projectId, query);
39
+ return (0, utils_1.toListResponse)(collection, { limit, offset });
40
+ }
41
+ catch (err) {
42
+ throw (0, utils_1.mapCalmErrorForTool)(err);
43
+ }
44
+ };
45
+ exports.listTimeboxesTool = {
46
+ toolDefinition: definition,
47
+ handler,
48
+ };
49
+ //# sourceMappingURL=listTimeboxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTimeboxes.js","sourceRoot":"","sources":["../../../src/tools/projects/listTimeboxes.ts"],"names":[],"mappings":";;;AAAA,2DAAsE;AAMtE,uCAOqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,8BAA8B;IACpC,WAAW,EACT,4IAA4I;IAC9I,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,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,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uBAAuB;SACjC,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;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI;aAC9B,WAAW,EAAE;aACb,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,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,iBAAiB,GAG1B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ICreateTaskParams, ITask } from '@mcp-abap-adt/calm-client';
2
+ import type { ICalmHandlerEntry } from '../../registry/types';
3
+ export type ICreateTaskArgs = ICreateTaskParams;
4
+ export declare const createTaskTool: ICalmHandlerEntry<ICreateTaskArgs, ITask>;
5
+ //# sourceMappingURL=createTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTask.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/createTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAsDhD,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAGpE,CAAC"}